摘要: 原创博客:转载请表明出处:http://www.cnblogs.com/zxouxuewei/ 一.首先移植c++ boost 库: 1. 先去 Boost官网 下载最新的Boost版本, 我下载的是boost_1_6_0版本, 解压. 2. 进入解压后目录: cd boost_1_6_0, 执行下面的命令: $ ./bootstrap.sh --prefix=path/to/installation/prefix prefix 的值是你希望安装boost的路径, 不开启此参数的话默认安…
一.首先移植c++ boost 库: 1. 先去 Boost官网 下载最新的Boost版本, 我下载的是boost_1_6_0版本, 解压. 2. 进入解压后目录: cd boost_1_6_0, 执行下面的命令: $ ./bootstrap.sh --prefix=path/to/installation/prefix prefix 的值是你希望安装boost的路径, 不开启此参数的话默认安装在 /usr/local 下. 我安装在 /home/xzz/boost_1_56_0目录下: $ .…
原文地址:http://www.corvin.cn/635.html,转载主要方便随时查阅,如有版权要求,请及时联系. 0x00 为何需要配置ROS多机通信 众所周知ROS是分布式系统,因此可以将机器人需要处理的复杂.计算量大的任务分解在多台机器上分开运行,这样就可以降低主系统出现异常的风险,因此我们就需要配置网络保证各ROS主机之间可以互相通信.另外我们在开发时也经常在本地计算机上来监视远程ROS主系统的运行状态也需要配置多机通信,在这里我们使用zeroconf来配置多机通信,zeroconf…
编写上位机与下位机通信的时候,涉及到协议的转换,比较多会使用到二进制.传统的方法,是将数据整体获取到byte数组中,然后逐字节对数据进行解析.这样操作工作量比较大,对于较长数据段更容易计算位置出错. 其实,对于下位机给出通讯的数据结构的情况下,可以直接使用C#的struct将数据直接转换.需要使用到Marshal. 数据结构 假定下位机(C语言编写)给到我们的数据结构是这个,传输方式为小端方式 typedef struct { unsigned long int time; // 4个字节 fl…
先模拟控制小乌龟 新建cmd_node.ccpp文件: #include"ros/ros.h" #include"geometry_msgs/Twist.h" //包含geometry_msgs::Twist消息头文件 #include <stdlib.h> #include<stdlib.h> int main(int argc, char **argv) { ros::init(argc, argv, "cmd_node&quo…
下位机使用北京大华程控电源DH1766-1,上位机使用WPF.实现了电压电流实时采集,曲线显示.上午在公司调试成功,手头没有程控电源,使用TCP服务端模拟.昨天写的TCP服务端正好排上用场. 界面如下: 服务端 服务端实在上篇基础上实现的.需要做如下更改: while (true)                           {                               try                               {               …
拿到任务之后首先分成了几个部分: 1.绘图.学习了GDI+ 2.图片保存. 3.将图片转换成byte[].由于使用Socket通信,只能传输byte[]数据,所以这一步是向下位机传输的关键. 相应地,编程实现了下面几个功能: 1.使用GDI+画图并保存为bmp格式的图片.画图部分是书上的例子,只增加了保存的相应代码. public partial class Form1 : Form { Bitmap bitmap; Font myFont = , FontStyle.Bold);//定义字符串…
一.背景: 自从接触单片机编程以来,由于工作上的需要,不可避免的时常会接手别人的代码,但常常由于上一位同事的编码随意性有点大,导致可读性非常的差,有时候不得不完全舍弃原有代码,推倒重来,无形中增加了工作量,浪费了宝贵的开发时间.因而也越来越觉着规范的代码才是提高工作效率的重要保证,不仅仅是为了别人,也为自己的日后维护带来十足便利. 因此本文即挑某一个方面:下位机多个".c, .h"文件的相互包含及排版做一个记录,提示自己,也为新加入的朋友们做个参考. 二.正文: 以我现在正在开发的电源…
背景: 最近负责为主板管理电源的电源管理模块编写软体,使用的MCU为MSP430G2333.功能上很简单,即通过板子上的硬件拨码设定,或者通过IIC与主板通信,由主板的BIOS决定开机及关机的延时供电时间. 正文: 所有功能均按预期实现,但有一个bug在最后蹦了出来,即在延时关机设定时,明明设定为15.18.48个小时,却每次在9个多小时的时候,电源被执行关闭动作.9个多小时,很有意思的数字.不用深究,问题直接锁定在时间比对函数内. // when the current time less t…
这里我主要说一下如何做一个USB下位机,这里主要分3部分:1.建立工程:2.添加报文描述符:3.数据的传输.这里就不讲USB的理论知识了,有想要了解的自行百度一下就可以了. 建立工程:工程建立参考:https://www.cnblogs.com/libra13179/p/7193375.html 1.首先打开USB 2.接着把USB设置为下图HID模式 3.选择外部时钟 4.配置时钟树 5.配置USB设置 下面的USB设置就有点讲究了, 6.确认后,生成代码 添加报文描述符: 这里只是建立了一个…
STM32 使用Cubemx 建一个USB(HID)设备下位机,实现数据收发  本文转载自 https://www.cnblogs.com/xingboy/p/9913963.html 这里我主要说一下如何做一个USB下位机,这里主要分3部分:1.建立工程:2.添加报文描述符:3.数据的传输.这里就不讲USB的理论知识了,有想要了解的自行百度一下就可以了. 建立工程:工程建立参考:https://www.cnblogs.com/libra13179/p/7193375.html 1.首先打开US…
项目中有个SocketServer要和移动便携POS机通信,POS开发商就告诉我们他们用的3DES(双倍长)加密,给了个Key.数据和结果,让我们实现. c#用TripleDESCryptoServiceProvider来实现3DES加密解密,但是还有些CipherMode,PaddingMode,IV值什么的要配置. 折腾半天.这样搞定:     var tdes = new TripleDESCryptoServiceProvider                {            …
[转]http://www.cqeis.com/news_detail/newsId=1477.html Vmware虚拟机软件是一个“虚拟PC”软件,它使你可以在一台机器上同时运行二个或更多Windows.DOS.LINUX系统,目前Vmware提供行业最专业的虚拟机,而Vmware虚拟机的网卡模式也分为几种,下面诚恺科技小编主要同大家一起分享VMware虚拟机网络模式以及使用何种模式完成虚拟机与物理机通信? 一.虚拟机网卡模式分类 虚拟机网卡模式,共5种,如下,在此主要讲解前三种,即桥接模式…
2011-12-14 18:44:32 效果图 1,完成设计(由于没有eeprom等存储设备,所以每次上电后需要通过串口配置某些寄存器).在设计中,列出技术评估难度,并进行尝试,参看<我的设计>.txt 2,编写代码,集成调试前,分别使用 1)下位机和“串口调试助手”通讯.完成下位机代码.使串口调试助手可以配置下位机寄存器.已完成. 2)上位机通过VSPD虚拟串口短接,与“串口调试助手”通讯,连续传输9个自己的十六进制数.完成上位机编程.已完成. 3)上位机与下位机集成测试.通过自己编写的上位…
linux下保存下位机输出的串口信息为文件 1.stty -F /dev/ttyUSB0 raw (转换成raw模式) 2.stty -F /dev/ttyUSB0 speed 115200 (设置波特率) 3.cat /dev/ttyUSB0 > serial.txt & (启动后台程序保存文件)…
就不说怎么组装了吧,一把辛酸泪.说程序,因为这有两把辛酸泪……一把给下位机的C代码一把为了VB.NET的图像处理……不过就上上一篇说的,它们可以正确运行了,并且今天克服了Arduino上电过程中步进电机没事瞎转悠的困难. 其实上位机和下位机的功能界定非常清晰:上位机解释图片为指令,下位机解释上位机指令为硬件动作——就俩步进和一个激光器.当然,如果有读卡器模块,完全可以把命令写成文件实现脱机打印.总体框架就是这样,那么下位机要实现的具体功能有哪些呢? 1.串口通讯:接收指令和发送请求.既然是通讯,…
宿主机 && docker 常用命令 1.如果你想快速发现在该主机上使用最多资源的容器(或是最近的所有systemd服务),我推荐systemd-cgtop命令: 2.…
setenv bootargs root=/dev/nfs       nfsroot=192.168.1.8:/opt/rootfs      ip=192.168.1.110:192.168.1.8:192.168.1.1:255.255.255.0      init=/linuxrc console=ttySAC0,115200       maxcpus=1 lcd=wy070ml tp=gslx680-linux  saveenv  说明:  root=/dev/nfs:告诉linu…
ssh本机失败(ssh: connect to host localhost port 22: Connection refused) 一. 问题描述 之前一直在服务上使用宝塔面板, 今天突发奇想, 想要在本机使用宝塔面板. (宝塔面板真的好用, 尤其对我这个zz小白来说)... 可是装好宝塔面板后, 启动面板的终端的时候, 发现输入ssh用户名密码的时候,  没有反应, 密码账号明明是对的啊!!! 有人可能要问了, 你tm在本机上使用宝塔面板, 还要使用宝塔的终端,, 不是多此一举吗!?,,,…
fw_common.h包括了USRP固件和上位机共用的代码,寄存器地址映射.结构体定义等 #include <stdint.h> /*! * Structs and constants for usrp2 communication. * This header is shared by the firmware and host code. * Therefore, this header may only contain valid C code. */ #ifdef __cplusplu…
以实现master和nico的互联共享信息为例 1 查看IP地址 $ifconfig 查看ip地址 可以看到 master的IP为192.168.1.10 nico的IP为192.168.1.103 这里的master和nico为两台机器的hostname 使用$hostname 指令可以查看其参数,我们在这里可以不使用ip地址,而是使用hostname.local代替机器的ip地址 2 设置环境变量 通过$gedit ~/.bashrc 指令来设置 master中添加环境变量: export…
    去年接触的一个项目中,需要通过TCP与设备进行对接的,传的是Modbus协议的数据,然后后台需要可以动态配置协议解析的方式,即寄存器的解析方式,,配置信息有:Key,数据Index,源数据类型,数据库列类型,数据排列方式  一开始使用的方式是,从数据库读取出协议的配置,然后在接收到数据的时候,循环每个配置项根据配置-----解析数据------转换类型----存临时列表,,后来改进了一下,配置项存缓存,,数据库修改的时候,同时更新缓存.. 但还是慢了一点,因为需一个配置大概是20-30个…
前言:一定要在同一路由的局域网下进行,就是两台电脑的ip要像这样:192.168.191.4和192.168.191.8,只有最后一位不同,这样就能ping通了,否则ping不同. 一.查看ip和主机名 1.1 查看ip: ifconfig  ----------------------------------------- 显示如下: 其中,lo是网线连接情况下的id,下边的wlp2s0是无线连接情况下的ip地址. 分别查看两台电脑的ip地址并用笔记本记录下来.一定要在同一局域网下进行! 1.…
1. 理解 ROS 话题: (Ctrl+Alt+T 打开一个新终端) 运行下面的命令: $ roscore (Ctrl+Alt+T 打开一个新终端) $ rosrun turtlesim turtlesim_node (Ctrl+Alt+T 打开一个新终端) $ rosrun turtlesim turtle_teleop_key 我现在可以控制小海龟:(要在 turtle_teleop_key 所在的终端窗口,按键盘的 方向键 来控制小海龟运动.) 使用 rosnode list 命令来看看这…
一.通信socket socket()函数 Python 中,我们用 socket()函数来创建套接字,语法格式如下: socket.socket([family[, type[, proto]]]) 参数 family: 套接字家族可以使AF_UNIX或者AF_INET type: 套接字类型可以根据是面向连接的还是非连接分为SOCK_STREAM或SOCK_DGRAM protocol: 一般不填默认为0. 二.ur接口(30001&30002) Primary & Secondary…
1.安装etcd yum install etcd systemctl stop etcd systemctl start etcd systemctl status etcd systemctl enable etcd ##开机自启动 查看etcd是否启动成功,etcd默认端口为2379$ lsof -i:2379 测试etcd可用性$ etcd --version $ etcdctl mkdir /test$ etcdctl ls / 2.安装flannel$ wget https://gi…
实验目标 跨物理机的容器之间能直接访问docker通过Flannel可以实现各容器间的相互通信,即宿主机和容器,容器和容器之间都能相互通信 实验环境 192.168.3.50 //etcd.flannel.docker192.168.3.51 //flannel.docker 00.系统统一设置 hosts\selinux\firewalld\iptalbes systemctl stop firewalld.service #放开iptables,让flannel通过iptables实现跨网通…
背景:匿名上位机功能强大,这里想要采用匿名上位机输出一些调试信息,以波形的形式显示,方便观察和调试. 平台: 硬件:STM32F405RGT6 通信:2.4G zigbee无线串口收发模块 CC2530 软件:匿名上位机V6 数传模块操作简介: 配置 代码:(注意以下代码中不包含中断优先级的配置,个人习惯将所有nvic的配置写在一个单独的函数中) 这里采用UART2 DMA发送的方式 将数据通过数传发送给匿名上位机.采用DMA传输完成中断,可以实现不定长数据的传输. /* usart2 for…
所谓套接字(Socket),就是对网络中不同主机上的应用进程之间进行双向通信的端点的抽象.一个套接字就是网络上进程通信的一端,提供了应用层进程利用网络协议交换数据的机制.从所处的地位来讲,套接字上联应用进程,下联网络协议栈,是应用程序通过网络协议进行通信的接口,是应用程序与网络协议根进行交互的接口. 1.套接字的功能 传输层真正连接的是套接字,通过套接字将数据发送给特定的进程.套接字位于传输层及应用层之间,是一个应用编程接口,应用程序通过调用此接口进行传输接收数据. 传输层如何标识套接字:通过i…
打电话 a.最简单最直接的方式:直接跳到拨号界面 NSURL *url = [NSURL URLWithString:@"tel://10010"]; [[UIApplication sharedApplication] openURL:url]; 缺点 电话打完后,不会自动回到原应用,直接停留在通话记录界面 b.拨号之前会弹框询问用户是否拨号,拨完后能自动回到原应用 NSURL *url = [NSURL URLWithString:@"telprompt://10010&…