首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏北溟有鱼QAQ

    Linux进程通信之管道通信2

    随机进程管道通信(无血缘关系) 读进程 <? STDOUT,"pid=%d write len = %d \n",getmypid(),$len); } } fclose($fd); 验证 通过以上图片可以发现,我们实现了不同进程间的通信 上一篇: Linux进程通信之管道通信

    2.4K30发布于 2021-09-08
  • 来自专栏强化学习专栏

    通信系统的最佳线性均衡器(2)---自适应滤波算法

    文章分类在通信领域笔记: 通信领域笔记(8)---《通信系统的最佳线性均衡器(2)---自适应滤波算法》 通信系统的最佳线性均衡器(2)---自适应滤波算法 通信系统的最佳线性均衡器 自适应均衡需要一个期望响应序列,在通信系统接通的时候,设置一段专门时间,用于训练均衡器,在这个时段,通信发送机和通信接收机都产生一段约定的训练序列。 (1)自适应干扰对消的应用; (2)自适应波束形成算法; (3)无期望响应的自适应滤波算法:盲均衡; 2 理论分析推导 自适应滤波所采用的最佳准则有最小均方误差 自适应均衡需要一个期望响应序列,在通信系统接通的时候,设置一段专门时间,用于训练均衡器,在这个时段,通信发送机和通信接收机都产生一段约定的训练序列。 v12 = sin(2*pi*fv*t+pi/2+randi([-10,10])/10*pi)%噪声副本 %加噪后的信号 d = s+v0; %% LMS算法设计自适应均衡器 M = 2; % 权系数个数

    1.8K12编辑于 2024-12-03
  • 来自专栏初见Linux

    2-2.进程通信-多线程

    2.进程通信的意义(为什么?): 并发进程之间的相互通信是实现多进程间协作和同步的常用工具。具有很强的实用性,进通信是操作系统内核层极为重要的部分。 二、进程通信方式(怎么做?) 共享存储区通信1.png (2)共享数据结构: 生产者-消费者问题,少量数据。 (3)共享存储区: Unix系统中通信速度最高的一种通信机制。 2.消息传递系统 在消息传递系统中,进程间的数据交换以消息为单位,在计算机网络中,消息又称为报文。程序员直接利用系统提供的一组通信命令(原语)来实现通信。 服务器方: (1) 首先服务器方要先启动,并根据请求提供相应服务; (2) 打开一通信通道并告知本地主机,它愿意在某一IP地址上接收客户请求;(3) 处于监听状态,等待客户请求到达该端口; (4) 客户方: (1) 打开一通信通道,并连接到服务器所在主机的特定端口; (2) 向服务器发服务请求报文,等待并接收应答;继续提出请求...... (3) 请求结束后关闭通信通道并终止。

    90020发布于 2020-08-05
  • 来自专栏独行猫a的沉淀积累总结

    银联通信MAC算法

    source[i]; } } /******************************************************* * 名称:获取报文MAC值 * 功能:报文MAC算法 U08 *buf, U32 buf_size, U08 *key, U08 *mac_buf ) { U08 val[8],Abuf[8],str1[8],str2[ (key,str1,mac); DataXOR( mac, str2, 8, Abuf ); CurCalc_DES_Encrypt(key,Abuf,mac); memcpy(Abuf 位密钥结果放入mac_buf } /******************************************************* * 名称:获取报文MAC值 * 功能:报文MAC算法 * 入口: * *buf ,要计算的数据缓冲区;buf_size,计算数据的长度 * *key ,密钥(8B) * 出口:mac_buf,计算出来的MAC值(8B) ansi x9.9 MAC算法

    1.5K10发布于 2020-08-04
  • 来自专栏根究FPGA

    串口通信系列(二)、I2C通信方式

    一、I2C简介 IIC全称为Inter Integrated Circuit:两根通信线:一根时钟线SCL一根数据线SDA,只有一根数据线,所以是半双工通信。 首先,CLK_FREQ是系统的输入时钟频率,I2C_FREQ是设定的IIC通信时钟频率。要生成IIC_SCL这样一个时钟的话肯定要分频,分多少? ) >> 2'd2。 分析系统的控制信号输入: (1)、IIC_EXEC:IIC通信执行的触发信号 (2)、bit_ctrl:地址控制信号,是8bit还是16bit的地址 (3)、i2c_rh_wl:读写类型控制信号输入 ( : IIC的应答信号 0:应答 1:非应答 分析工作状态: 平时肯定是处于空闲状态——之后接收到IIC执行信号——要看是读取还是写入操作——与从机建立通信即发送从机地址——然后传输要读取或写入的地址

    5K10发布于 2020-06-30
  • 来自专栏技术总结

    算法(2)

    有两个算法 A 和 B ,假设两个算法的输入规模都是 n,算法 A 要做 2n+3 次操作,算法 B 要做 3n+1 次操作。觉得谁快?看下图: ? 而当 n = 2 时,两者效率相同;当 n > 2时,算法 A 就开始优于算法 B 了,随着 n 的增加, 算法 A 比算法 B 越来越好了,得出结论,算法 A 好过 算法 B 判断一个算法的效率时,函数中的常数和其他次要项常常可以忽略 2、在修改后的运行次数函数中,只保留最高阶项。 3、如果最高阶项存在且不是1,则去除与这个项相乘的常数,得到的结果就是大O阶 3、常数阶 高斯算法,时间复杂度不是O(3),而是O(1)。 //第二种算法 int sum = 0, n = 100; /*执行1次*/ sum = (1 + n) * n/2; /*执行1次*/ printf( 也就是说,有多少个2相乘后大于n,则会退出循环。由2× = n ,得到 x = ㏒2n (2缩小)。所以这个循环的时间复杂度为O(㏒n)。

    1.3K90发布于 2018-05-22
  • 来自专栏Vegout

    P2P通信原理

    ip2:port2 从而与 ip1:port1 进行通信。 发出;外部只有收到过 ip2:port2 数据包的 ip3 才可以发送数据包给 ip2:port2 从而与 ip1:port1 进行通信。 ;外部只有收到过 ip2:port2 数据包的 ip3:port3 才可以发送数据包给 ip2:port2 从而与 ip1:port1 进行通信。 也就是说,P1 与服务器通信使用的 NAT 地址和 P2 与 P1 通信使用的 NAT 地址是不同的(一般情况都是端口不同)。甚至 P1 与服务器通信使用的 NAT 地址都在不断的发生变化。 这样让我们没办法拿到隐藏在 NAT 后边内网设备的 NAT 入口,也就没办法进行 P2P 通信了。 P2P 也用到了一个服务器,跟微信一样。

    5.8K10发布于 2020-05-07
  • 来自专栏胡飞洋的Android进阶

    进程间通信的方式(2)

    这里先介绍使用AIDL 来进行进程间通信的流程,分为服务端和客户端两个方面。 2、下面继续《艺术探索》中关于AIDL的进阶知识: 1)进程间的Listener 假设有一种需求:用户不想时不时地去查询图书列表了,太累了,于是,他去问图书馆,“当有新书时能不能把书的信息告诉我呢?”。 主要是两方面: 1、客户端要注册IOnNewBookArrivedListener到远程的服务器,这样当有新书时服务端才能通知客户端,同时在我们的Activity的onDestory方法里面去取消绑定; 2、 2)RemoteCallbackList 如果你以为AIDL就这样结束了,那你就错了,AIDL远不止这么简单,目前我们还有一些难点还没有涉及。 2、由于服务端的方法本身就运行在服务端的Binder线程池中,所以服务端方法本身就可以执行大量耗时操作,这个时候切记不要在服务端方法中开线程执行异步任务,除非你明确知道自己在干什么,否则不建议这么做。

    1.7K10发布于 2020-07-23
  • 来自专栏数据云团

    并发篇-python并发通信-2

    死锁是指两个或两个以上的进程或线程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。

    96420发布于 2019-07-18
  • 来自专栏嵌入式开发圈

    浅谈总线通信机制(通信基础+串口+I2C)

    (1)按系统总线传输信息的方式可以分为以下三种: 1、数据总线 2、地址总线 3、控制总线 (2)按照总线的使用范围又可以分为很多很多种: 比如串口通信,计算机外设通信,网络通信等等。 数据通信的种类有:串行通信、并行通信。不管是什么类型的通信,再怎么复杂的,也是在这两种上面衍生出来的。 数据通信的传输方向又有:单工、半双工、全双工。 接下来,我们来说说I2C协议,I2C协议是什么鬼?I2C是(Inter-Integrated Circuit)的英文缩写,是Philips公司开发的一个通信协议,只有两根线是用来通信的。 上拉电阻取值要取什么值,这个电阻取大取小对I2C通信的时候有什么影响,应该取什么值最合适?既然有上拉电阻,那是不是有下拉电阻? 为什么我看有些I2C的外设接在MCU的IO口里,也没有看见接上拉电阻啊,那为什么通信也正常?

    3.6K12发布于 2019-07-04
  • 来自专栏九彩拼盘的叨叨叨

    Vue2 组件通信写法总结

    组件通讯包括:父子组件间的通信和兄弟组件间的通信。具体有以下几种情况。 父组件传递数据给子组件 父组件使用 Prop 传递数据给子组件。 <child-component :prop1="父组件的数据1" :prop2="父组件的数据2"></child-component> 子组件只接收在子组件定义的 props的值。 div>{{prop1 + prop2}}

    ', ... } 父组件调用子组件属性或方法 给要调用的子组件起个名字。 兄弟组件间通信 方法1: 用事件的发布订阅来做。 var bus = new Vue() // 组件 A 中触发事件 bus. $on('id-selected', function (id) { // ... }) 方法2: 用 vuex 来做兄弟组件间的通信。 不推荐的方式:兄弟组件通过父组件来通信。

    57020发布于 2018-08-24
  • 来自专栏Article

    算法 Day 2

    冒泡排序 平均时间复杂度 O(n2) 空间复杂度 O(1) function bubbleSort(arr) { var i = arr.length; var position =

    17710编辑于 2022-06-14
  • 来自专栏c#学习笔记

    C#串口通信:2自动连接

    这次我们来说说怎么去实现制动连接串口(当你把设备连上来之后,怎么去让软件自动去识别是否为目标设备,当然这需要上位机与下位机共同完成,这里我们只讨论上位机部分) 先上协议: 帧头(3)+设备号(1)+指令类型(2) +数据长度(2)+载荷+CRC(2) 需要在下位机上实现的部分: 接收到一帧数据(帧头为53 5A 59,设备号01,类型为02,载荷无)53 59 A2 01 02 00 00 00 CRC后,会返回 SPort.PortName = portName; SPort.Open(); SPort.DiscardOutBuffer(); byte[] bytSend = new byte[] { 0x53, 0x59, 0xA2, SPort.Open(); SPort.DiscardOutBuffer(); byte[] bytSend = new byte[] { 0x53, 0x59, 0xA2,

    1.5K31发布于 2021-03-12
  • 来自专栏初见Linux

    2.数据通信(二)

    一、数据通信方式(考概念) 1.根据信号类型分类: (1)模拟通信: 利用正弦波的幅度、频率或相位的变化,来模拟原始信号,以达到通信的目的。 (AM,FM,PM) (2)数字通信: 用数字信号作为载体来传输消息,或用数字信号对载波进行数字调制后再传输的通信方式(ASK,FSK,PSK等)。 2.根据一次传输的数据位数分类: (1)串行通信: 指使用一条数据线将数据一位一位地依次传输,每一位数据占一个固定的时间长度。 如 RS232 ,USB 等。 (2)并行通信: 一组数据的各个数据位在多条线上同时被传输,磁盘的接口,打印机接口。 3.根据通信方向分类: (1)单工: 发送方和接收方只能是固定的一个方向,由A→B。 在两个或多个数据终端之间建立数据通信的暂时互连通路的技术。

    1.4K20发布于 2020-08-05
  • 来自专栏iot-me

    I2C通信协议

    简介 I2C通信协议(Inter-Integrated Circuit)是由Philips公司开发的,由于它引脚少,硬件实现简单,可扩展性强,不需要使用USART、CAN等通信协议的外部收发设备,现在被广泛地用于系统内多个集成电路 (I2C)间的通信。 物理层 支持多主机从机,如下图总线上挂载了多个i2c设备,通过指定地址选择操作的设备。 当I2C设备空闲时,会输出高阻态,而当所有设备都空闲,都输出高阻态时,由上拉电阻把总线拉成高电平。 (OD门可实现线与功能) 具有三种传输模式:标准模式传输速率为100kbit/s ,快速模式为 400kbit/s ,高速模式下可达 3.4Mbit/s,但目前大多I2C设备尚不支持高 速模式

    85420编辑于 2022-02-11
  • 来自专栏全栈之路

    vue与struct2的通信

    注意最后返回的数据格式是:"success_jsonpCallback(<json字符串>)"

    1K10发布于 2018-10-19
  • 来自专栏书山有路勤为径

    2.ROS基础-ROS通信编程

    spinOnce(); // 按照循环频率延时 loop_rate.sleep(); ++count; } return 0; } 程序逻辑: 1.头文件 2. 比如想创建如下话题消息 # Person.msg string name uint8 sex uint8 age uint8 unknow = 0 uint8 male = 1 unit female = 2 learning_communication::AddTwoInts srv; srv.request.a = atoll(argv[1]); srv.request.b = atoll(argv[2] 动作编程 什么是动作(action) 一种问答通信机制 带有连续反馈 可以在任务过程中止运行 基于ROS的消息机制实现 Action的接口 goal :发布任务目标 cancel:请求取消任务 status

    2K40发布于 2019-03-15
  • 来自专栏DevOps

    C++进程间通信 详解2

    现今常用的进程间通信方式有: 1)管道 (使用最简单) 2)信号 (开销最小) 3)共享映射区 (无血缘关系) 4)本地套接字 (最稳定) 进程间通信方法介绍 1. 2) 由于管道采用半双工通信方式。因此,数据只能在一个方向上流动。 3) 只能在有公共祖先的进程间使用管道。 常见的通信方式有,单工通信、半双工通信、全双工通信。 (2) 管道未满,write将数据写入,并返回实际写入的字节数。 练习1:使用管道实现父子进程间通信,完成:ls | wc -l。假定父进程实现ls,子进程实现wc? 实现父进程ls 子进程wc -l 父子进程实现ps aux | grep bash 练习2:使用管道实现兄弟进程间通信。 兄:ls 弟: wc -l 父:等待回收子进程? 打开的文件 2. mmap建立的映射区(但必须要使用MAP_SHARED) 12. 匿名映射 通过使用我们发现,使用映射区来完成文件读写操作十分方便,父子进程间通信也较容易。

    1.7K10编辑于 2024-03-29
  • 来自专栏AngelNI

    排序算法-2

    start++] =arr[p]; } } void mergesort(ll *A,ll start,ll end) { if(start<end) { ll mid = (start+end)/2; = a[i]; a[i] = a[j]; a[j] = t; } void heapify(ll *tree,ll n,ll i) { if(i>=n) return ; ll c1 = 2* i+1; ll c2 = 2*i+2; ll max = i; if(c1<n&&tree[c1]>tree[max]) { max = c1; } if(c2<n&&tree[c2]> tree[max]) { max = c2; } if(max ! = i) { swap(tree,max,i); heapify(tree,n,max); } } void heapsort(ll *a,ll n) { for(ll i =n/2-1;

    39310发布于 2020-04-14
  • 来自专栏修也的进阶日记

    算法手记2

    NC296 最小花费爬楼梯 牛客网题目链接(点击即可跳转):NC296 最小花费爬楼梯 题目详情: 本题详情如下图: 题目思路: 本题解题思路如下: 基础动态规划,1.写出动态转换方程2. vector<int>& cost) { vector<int> dp; dp.resize(cost.size()+1); for(int i=2; i<=cost.size();i++) dp[i]=min(dp[i-1]+cost[i-1],dp[i-2]+cost[i-2]); return dp[cost.size ()]; } }; 结语 说点啥好呢...不断修补细节然后提高效率,不断学习算法并应用出肌肉记忆.

    20700编辑于 2025-03-14
  • 领券