ep

跨线程访问windows窗体控件

坚强是说给别人听的谎言 提交于 2020-03-18 15:35:34
无返回类型调用 delegate void SetListViewItem(EndPoint ep); private void AddToListview(EndPoint ep) { ListViewItem lvi=new ListViewItem(); lvi.Text=((IPEndPoint)ep).Address.ToString(); lvi.SubItems.add(((IPEndPoint)ep).Port.ToString()); lvi.SubItems.Add("UnKnow"); if(this.listView1.InvokeRequired) { SetListViewItem d=new SetListViewItem(AddToListView); this.Invoke(d,new object[] {ep}); } else { listView1.Items.Add(lvi); } } 返回类型调用 delegate ListViewItem SetListViewItem(EndPoint ep); private ListViewItem AddToListView(EndPoint ep) { ListViewItem lvi = new ListViewItem(); lvi.Text = ((IPEndPoint)ep)

PCIE_DMA实例三:Xilinx 7系列(KC705/VC709)FPGA的EDK仿真

梦想的初衷 提交于 2020-01-20 03:01:17
一:前言 好久没写博客了,前段时间有个朋友加微信请教关于PCIe的一些学习方法。本人也不是专家,只是略知一些皮毛。对于大家反馈的问题未必能一一解答,但一定知无不言。以后我会常来博客园看看,大家可以把问题直接在评论区提出来。这篇博客是应部分网友的要求写的,Xilinx升级到7系列后,原来的pcie ip核trn接口统统转换成了axis接口,这可愁坏了之前用xapp1052的朋友,一下子不好用了,该怎么办?对此我的想法是:如果您两年左右的verilog代码经验,建议您直接使用axis接口,如果您觉得使用不方便,大可在外面再包一层您自己觉得好用的接口。博主公司有这方面的技术积累,但涉及到商业利益,我不能在此出售源代码,如有私下合作,可谈。PCIe_to_RapidIO, PCIe_to_FC, PCIe_to_Enet等各类接口转换都没问题。如果您刚接触PCIe,想要更清楚得理解axis接口的PCIe IP核是如何工作的,那么这篇系统级的博客对您将会非常有用,同时博主也会给出一个用Block_design搭的带有DMA功能的简易EP,大家只要自己写个简单的控制逻辑就可以操作EP端的DMA,对于没有经验的工程师,是一个比较容易的技术迁移。 二:前期准备 1、pcie基础还是要有,尤其是协议部分。推荐一本电子书,很经典,请耐心读它(Addison.Wesley.PCI.Express

pcie inbound、outbound及EP、RC间的互相訪问

这一生的挚爱 提交于 2019-12-13 15:38:54
Inbound:PCI域訪问存储器域 Outbound:存储器域訪问PCI域 RC訪问EP: RC存储器域->outbound->RC PCI域->EP PCI域->inbound->EP存储器域 EP訪问RC:EP存储器域->outbound->EP PCI域->RC PCI域->inbound->RC存储器域 Out即出去,发起訪问的一側,须要进行outbound,去訪问对端 In即进来,被訪问的一側,须要进行inbound,使得对端能够訪问 EP訪问RC演示样例(蓝色箭头): (1)首先,EP须要配置outbound,RC须要inbound(一般RC端不用配),这样就建立了EP端0x20000000到RC端0x50000000的映射 (2)在RC端改动0x50000000的内容,EP端能够看到对应的变化。从EP端读/写0x20000000和从RC端读/写0x50000000,结果是一样的 RC訪问EP演示样例(黑色箭头): (1)首先,RC端须要配置outbound(一般内核中配好),EP端须要inbound(0x5b000000 inbound到BAR2),这样就建立了RC端0x20100000(BAR2)到EP端0x5b000000的映射 (2)在EP端改动0x5b000000内存的内容,在RC端0x20100000能够看到对应的变化,从RC端读

bzoj3144 [HNOI2013]切糕(最小割)

青春壹個敷衍的年華 提交于 2019-12-11 14:44:11
bzoj Luogu 题面描述见上 题解时间 ~~ 一开始我真就把这玩意所说的切面当成了平面来做的 ~~ 事实上只是说相邻的切点高度差都不超过 $ d $ 对于一条 $ z $ 轴方向的线,把原题的点看成边,每个原题的点两端看成两个点就好(就是说一条线上有 $ r+1 $ 个点 $ r $ 条边),底端每一个点有一条由 $ S $ 连向它的不能断开( $ inf $ )的边,顶端每个点同理连向 $ T $ 之后考虑处理相邻两点之间高度差不超过 $ d $ 假设我们已经选了线 $ l_1 $ 上的一个原图点 $ p_1 $,那么与之相邻的一条线 $ l_2 $ 上选择的原图点 $ p_2 $ 纵坐标必须在一个区间内 从 $ p_1 $ 两端向 $ p_2 $ 可选范围两端连不能断开( $ inf $ )的边就行 然后直接跑最小割。 #include<bits/stdc++.h> using namespace std; template<typename TP>inline void read(TP &tar) { TP ret=0,f=1;char ch=getchar(); while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();} while(ch>='0'&&ch<='9'){ret=ret*10+ch-'0';ch

计算两直线交点

旧巷老猫 提交于 2019-12-11 09:48:16
function LineToLineCP(VertLine, WallLine: TGPLineF): TGPPointF; var SP, EP, SP1, EP1: TGPPointF; t: Single; ReGP: TGPPointF; begin SP.X := VertLine.SP.X; SP.Y := VertLine.SP.Y; EP.X := VertLine.EP.X; EP.Y := VertLine.EP.Y; SP1.X := WallLine.SP.X; SP1.Y := WallLine.SP.Y; EP1.X := WallLine.EP.X; EP1.Y := WallLine.EP.Y; ReGP.X := SP.X; ReGP.Y := SP.Y; // 需判断 if IsEqualValue(SP.X, EP.X) and IsEqualValue(SP1.Y, EP1.Y) then begin ReGP.X := SP.X; ReGP.Y := SP1.Y; end else if IsEqualValue(SP.Y, EP.Y) and IsEqualValue(SP1.X, EP1.X) then begin ReGP.X := SP1.X; ReGP.Y := SP.Y; end else begin t := ((SP.X

js 一对多 双向绑定器

微笑、不失礼 提交于 2019-12-01 06:09:18
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> </head> <body> <h1 class="disp"></h1> <h2 class="disp"></h2> <h3 class='disp'></h3> <input type="text" id="inp1"></input> <input type="text" id='inp2'></input> <script> var man = { name: 'zhang' }; function bind(obj, key, selector, prop, event = undefined) { var els = document.querySelectorAll(selector); var value_1 = obj[key]; Array.prototype.slice.call(els).forEach(function (el) { if

[网络流24题(5/24)] 分配问题(最小费用最大流)

十年热恋 提交于 2019-11-27 21:54:53
传送门 分析: 非常经典的费用流的模型吧,也可以通过二分图最大匹配去做,但是鉴于二分图最大匹配的算法存在一定的局限性,故还是学一学较为通用的费用流的做法。 这道题目中本质上要讨论的问题跟运输问题, 运输问题 是一致的。 因为考虑到每个人只能被分配到一种货物,每种货物只能被一个人所分配,因此,我们不妨用流量将他们限流。 我们创建一个超级源地 \(sp\) ,将 \(sp\) 跟每个人连一条流量为 \(1\) ,费用为 \(0\) 的边。 同时我们创建一个超级汇点 \(ep\) ,将每一种货物跟 \(ep\) 都连一条流量为 \(1\) ,费用为 \(0\) 的边。 同时,对于每一个人和货物,我们对他们连一条流量为无穷的边。 因为每个人只能从超级源点获取最多 \(1\) 点的流量,每种货物只能向超级汇点传送最多 \(1\) 点的流量,因此当这个图满流时,能够保证每个人一定会配对最多一个货物,即达到我们限流的要求。 而如果我们需要求解最小花费,我们只需要将人和货物的边加上的费用取 \(val_{ij}\) ,最后在这张图上跑最小费用最大流后最小费用即为答案。 而如果我们需要求解最大花费,我们只需要将人和货物的边加上的费用取相反数 \(-val_{ij}\) ,最后在这张图上跑最小费用最大流后最小费用的相反数即为答案。 代码: #include <bits/stdc++.h>

杭电1145 so you want to be a 2n-aire?

醉酒当歌 提交于 2019-11-26 03:12:57
杭电1145 这道题的意思是给你一元钱,让你连续回答n个问题,每回答对一个问题,钱数翻倍,回答错了,就什么也没有了,已知你回答对没到题的概率在t到1之间均匀分布。求你能获得的最大的钱数期望。 刚看到这道题不明白什么意思,到底求什么期望,后来看了几篇大牛的博客才懂,首先假设有n道题,你已经回答了i道题了,下面我们要确定的是回答第i+1道题是回答还是不回答,那么该如何确定呢? 你已经回答了i道题,那么获得的钱是2^i,我们假设回答问题所获的期望存储在数组d中,那么回答对第i+1 道题的期望就是d[i+1],我们假设一个比值ep,来确定要不要回答第i+1道题,如果d[i+1]*ep>2^i,回答后期望得到的钱比不回答的钱多,那么肯定要回答。即当ep>2^i/d[i+1];肯定回答下一题。那么我们就假定ep=2^i/d[i+1]为临界值。那么我们就要确定ep与t的大小了。 很明显,当t>=ep时,即回答对下一题的概率大于回答下一题的概率,那么肯定回答下一题。这样回答下一题的期望就是(1+t)/2*2*d[i+1](因为t是均匀分布,所以t的数学期望是(1+t)/2); 那么当t<ep时,我们要不要回答这题呢,不知道,我们要判断概率,回答这道的概率是(1-ep)/(1-t);那么不回答这题的概率应该就是(ep-t)/(1-t);(根据所谓的全概率公式,虽然刚学概率论,居然不会用概率论公式