番茄炒蛋不要蛋
IP:
0关注数
0粉丝数
0获得的赞
工作年
编辑资料
链接我:

创作·42

全部
问答
动态
项目
学习
专栏
番茄炒蛋不要蛋

一个LabVIEW控件,生成模拟波形效果

LabVIEW实在强大方便,今天为各位分享一个小技巧:如何制作一款模拟波形效果小软件。这里依托于LabVIEW内置的波形生成VI,本篇博文仅仅仅介绍基本函数发生器VI,仅仅是一个抛砖引玉,感兴趣的朋友可以多多尝试。仅仅使用一个控件实现Sine Wave(默认)、Triangle Wave、Square Wave和Sawtooth Wave波形的可视化,支持调节频率值、幅值和相位值,如下图所示:在LabVIEW1中鼠标点击右键,选择:“信号处理”→“波形生成”→“基本函数发生器”,如下图所示:实现代码非常简单,如下所示:
0
0
0
浏览量2011
番茄炒蛋不要蛋

LabVIEW设计自定义指示灯和按钮控件

LabVIEW中提供了很多内置的指示灯和按钮控件,可以实现状态的切换和控制,效果如下图所示:但是内置的指示灯和按钮控件样式单一、不够美观且可能和程序的风格不搭配,例如,以下按键点灯示例中使用的指示灯比内置的控件要美观很多。LabVIEW中提供了两种自定义控件方法,对应了如下两种自定义控件类型:普通方式自定义控件:是在LabVIEW开发环境中提供的已有控件的基础上,基于控件原有的属性和方法,仅通过改变控件的外观使其成为个性化的控件,但是功能是改变不了的,哪怕外观看上去不是按钮,但它还是一个布尔控件,该类型的自定义控件保存的文件名后缀为“.ctl”;高级方式自定义控件:是自定义的控件不仅具有个性化的复杂外观,同时也提供了特殊的属性和方法来控制控件的行为,即XControl控件。 本篇博文主要来讲讲普通方式自定义控件的实现方法,高级方式自定义控件较为复杂,而且一般情况下也用不到,感兴趣的朋友可以查看文末的链接进行学习。1、准备图像素材在开始制作前需要制作或者下载两张大小相同的png格式的控件图片,一张作为控件为ture时的状态,一张作为控件状态为false时的图片。例如,我下载的亮、灭LED等的照片,如下所示:2、自定义控件第1步:新建自定义控件,选择:“文件”→“新建”→“其他文件”→“自定义控件”,如下图所示:第2步:鼠标右键,选择:“布尔”,随意选择一种常用的布尔按钮或者指示灯,如下图所示:第3步:将控件切换到“编辑模式”,如下图所示: 第4步:选中控件,点击鼠标右键,选择:“图片项”,可见目前控件的开关显示状态,如下图所示: 第5步:选择:“以相同大小从文件导入...”,将默认的开关图片项替换为下载/设计的控件图像,注意,替换控件图片时,亮灭图片的顺序要保持不变,如下图所示: 第6步:最后,保存为“.ctl文件”,可以在VI程序中调用,鼠标点击右键,选择:“选择控件”,如下图所示:
0
0
0
浏览量2011
番茄炒蛋不要蛋

LabVIEW实现应用程序停止或退出

我们在做应用程序开发时,最后必然会用到应用程序停止或退出功能,本篇博文将分享实用LabVIEW如何实现应用程序停止或退出。其实非常简单,两个组件就可以实现,在LabVIEW中右键鼠标:编程→应用程序控制→可以找到停止和退出LabVIEW,如下所示:停止功能相当于单击工具栏上的中止执行按钮。输入TRUE可调用该函数前,应确认已完成VI的所有最后任务(例如,关闭文件、设置相关设备的保存值等),停止功能仅仅使程序停止运行,不退出LabVIEW环境。退出功能和停止功能很相似,但是它停止所有正在执行的VI并结束当前的LabVIEW实例,在使用的时候需要加以区分。 最后通过一个小案例加深理解,通过点击按钮停止定时计数程序,实现代码如下所示:
0
0
0
浏览量2011
番茄炒蛋不要蛋

安装不上cvxpy问题解决办法

一、Windows安装问题解决按照如下顺序方法安装就可以解决安装不上cvxpy问题了pip install ecos==2.0.7rc2 pip install cvxpy 二、ubuntu20.04安装直接输入:pip3 install –user cvxpy 参考网址:python - CVXPY installation issues - Stack Overflow
0
0
0
浏览量448
番茄炒蛋不要蛋

LabVIEW操作鼠标滚轮放大/缩小图像

之前分享过一篇关于LabVIEW采集鼠标、键盘数据的文章:LabVIEW采集鼠标、键盘数据,本篇博文将分享一个关于鼠标滚轮的有意思小技巧:操作鼠标滚轮来放大和缩小图片。示例效果如下所示:本示例功能主要基于图片控件中用于缩放图像的因子(图片属性)实现,说明如下图所示:通过获取鼠标滚轮数值将其转换为放大/缩小图像数值,使图像可以最小缩小10%,最大放大2000%的效果,示例代码如下所示:
0
0
0
浏览量2033
番茄炒蛋不要蛋

LabVIEW保存、读取配置文件

在软件项目开发过程中避免不了要将数据保存到本地,例如,登录信息、账户、密码等。保存数据到本地的方式有很多种,本篇博文主要分享LabVIEW内置的保存、读取配置文件方法。在LabVIEW中鼠标右键选择:“编程”→“文件I/O”→“配置文件VI”,可以见到一系列配置文件的操作方法,如下图所示:关于配置文件VI中各个函数功能这里不再赘述,可以查看帮助文档,里面有非常详实的说明。1、保存配置文件编写一个小案例,使用“配置文件VI”将IP地址信息、端口号、用户名和按钮状态信息保存到配置文件中,效果如下图所示:案例的实现非常简单,有两点比较有意思:1、路径设置的是相对路径,保存不受限制;2、可以输出异常错误信息,实现代码如下所示: 最后,可以使用Notepad++(代码查看工具),查看配置文件中的内容,如下图所示:2、读取配置文件读取配置文件就是将保存的配置文件数据信息读取出来,效果如下图所示:实现代码如下所示:
0
0
0
浏览量2011
番茄炒蛋不要蛋

LabVIEW十六进制和字符类型转换

在LabVIEW的串口通信中,数据的发送与接收都是基于字符串控件(常量)进行的。 字符串控件(常量)有两种表现形式:正常显示和十六进制显示。正常显示:可打印字符以控件字体显示。不可显示字符通常显示为一个小方框。十六进制显示:每个字符显示为其十六进制的ASCII值或其他编码值,字符本身并不显示。 本篇博文将介绍如何使用LabVIEW实现十六进制和字符类型转换。字符类型转换为十六进制程序如下所示:十六进制转换为字符类型程序如下所示:
0
0
0
浏览量2014
番茄炒蛋不要蛋

LabVIEW设计自定义滚动条

在讲解自定义滚动条之前,我们先了解一下,如何动态控制常规的滚动条控件,效果如下所示:              这是使用LabVIEW自带的滑动控件,鼠标右键,选择:“数值”,可以看到各式各样的滑动杆控件,如下所示:通过编程实现滚动条动态效果,程序设计如下所示:接下来将LabVIEW内置的滑动杆控件进行自定义设计。选择滑动杆控件,鼠标右键点击,选择:“高级”→“自定义...”,如下图所示:设计自定义滚动主要就是将滑块替换为我们设计好的图片。点击进入“自定义模式”,如下图所示:选择:“以相同的大小从文件导入...”,替换滑动块,如下图所示:这里我导入的是自己设计的文字图片文件(透明),如下图所示: 退出“自定义模式”(进入“编辑模式”),将自定义的滑动杆调节成合适比例,如下图所示:此时可见,滑动杆背景颜色不太美观,也可进行修改,选择:“查看”→“工具选板”,如下图所示:这里我将背景设置为透明颜色,如下图所示:为了美观我还将标尺隐藏起来,如下图所示: 最后,保存为:“.ctl”控件文件,直接导入就可以使用了,如下图所示:依旧使用上述代码,实现设计自定义滚动条效果,如下图所示:
0
0
0
浏览量2012
番茄炒蛋不要蛋

LabVIEW应用程序后台运行

本篇博文分享LabVIEW虽然不常用但是很有意思的一个开发技巧:应用程序后台运行。运行程序后自动隐藏前面板窗口和任务栏图标。实现方法依旧很简单,分为两步:1、隐藏VI前面板窗口隐藏VI前面板窗口程序设计很简单,如下所示:下面详细介绍一下实现过程和方法。第1步:添加“当前VI路径”获取本VI的路径信息:函数→ 编程→文件常量→当前VI路径,如下图所示:第2步:添加“打开VI引用函数”来打开该顶层VI的引用:函数→ 编程→ 应用程序控制子面板→ 打开VI引用函数,如下图所示:第3步:添加“调用节点”,并将VI的引用连接到一个调用节点的输入端:函数→ 编程→ 应用程序控制→ 调用节点,如下图所示:第4步:选择“打开前面板方法”并且选择前面板状态为隐藏后,添加“关闭引用节点”来关闭VI的引用:函数 → 编程→ 应用程序控制→ 关闭引用,如下图所示:2、隐藏任务栏图标在应用程序文件夹中找到“应用程序文件名”.ini文件(根据用户自定义名称,这里所说仅是我自己定义的名称),打开后在最后添加:HideRootWindow = True,如下图所示:
0
0
0
浏览量2022
番茄炒蛋不要蛋

Ubuntu + CUDA 8.0 + GTX960M

参考网址:https://blog.csdn.net/qq_37941538/article/details/87818746在运行sudo ./cuda_8.0.44_linux.run这一步的时候,要注意,驱动已经安装,所以选择no不安装,如下图所示:注意在配置文件profile中:选择下图所示文件:export PATH=/usr/local/cuda-8.0/bin:$PATH export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64$LD_LIBRARY_PATH测试CUDA8.0安装是否成功:如图表示成功
0
0
0
浏览量1504
番茄炒蛋不要蛋

crontab 定时任务

一、简介        问题需求,有时候我们需要在机器人在间隔时间循环启动某个命令执行特定任务,比如清理垃圾/.ros中的日志文件夹/log超过了1G而产生的提醒,这些log并没有什么实际用处,情况只需要执行:rosclean purge -y;第二种情况是执行脚本文件,比如python文件或shell文件,实现的功能也是定时循环或者监听某一端口而实现;第三种情况就是可能需要启动新的终端执行特俗命令。二、crontab 介绍        对于普通用户,一般操作如下命令进行添加任务即可,注意,第一次输入的时候会让你选择编译器,根据自己习惯选择即可,我这里选择nano编译器编辑文本。crontab -e 第一次打开的时候会让其选择编译器,这里选择12.1 定时任务介绍基本格式 : *  *  *  *  *  command 分 时 日 月 周 命令 第1列表示分钟1~59 每分钟用*或者 */1表示 第2列表示小时1~23(0表示0点) 第3列表示日期1~31 第4列表示月份1~12 第5列标识号星期0~6(0表示星期天) 第6列要运行的命令 例如: # 每1分钟执行 test.py 文件,文件要写绝对路径 */1 * * * * python /users/root/test.py # 每天早上10点重启 MySQL 0 10 * * * mysql.server restart三、安装邮件通知非刚需,如想查看定时任务日志,需要安装sudo apt-get install postfix四、debug查看crontab执行日志,其中czh是本人用户名,里面有crontab执行的日志提示。这个文件是crontab开启任务计划后自动生成的。查看命令nano /var/spool/mail/czh五、打开终端执行shell脚本       cron 运行于非交互 shell,没有附属的终端,也独立于图形桌面        熟悉以上操作后,开始执行不同任务对象,目标:定时启动一个终端,在终端打开定时任务:crontab -e输入如下内容:每隔1分钟执行打开一个新的终端,执行test.sh任务。*/1 * * * * export DISPLAY=:0 && /usr/bin/dbus-launch /usr/bin/gnome-terminal -x bash /home/czh/Downloads/test1.sh        保存退出后,可以选择执行:重启定时服务。service cron restart参考:cron 在终端运行程序或运行图形应用_lceBear的博客-CSDN博客 六、执行shell任务        这个只是执行shell脚本或者python脚本,不开终端,开终端会有一个问题,就是:dbus-launch 每次都会开启一个 dbus-daemon 进程,即使计划任务退出,该进程继续存在。如果计划任务频繁开启,就会产生很多 dbus-daemon 进程。所以,应当在计划任务退出时 kill 相应的 dbus-daemon 进程。注意,系统登录后也有自己的 dbus-daemon 进程,不要 kill 错了。打开:crontab -e输入:实现每隔一分钟执行test.sh文件(加权限:sudo chmod +x test1.sh)*/1 * * * * /bin/zsh -c /home/czh/Downloads/test1.sh七、执行python任务            针对python脚本,可能会面临打开终端后执行python报错,原因是定时开启的环境变量和我们系统不一致导致的,所以要把python执行脚本的环境变量加进去首先:查看python在哪个位置,输入:which python3然后输入打开:crontab -e输入:(加权限:sudo chmod +x test1.py)/Library/Frameworks/Python.framework/Versions/3.5/bin/python3 /home/czh/Downloads/test1.py
0
0
0
浏览量266
番茄炒蛋不要蛋

LabVIEW设置应用程序显示标签透明

在美化应用程序时,有时候需要将某些标签设置为透明状态,之前在LabVIEW设计自定义滚动条博文中制作的滚动条是一种方式,但是这种方式明显过于复杂。本篇博文将介绍一种简单方法,还是以我们分享的LabVIEW实现科学计算器小项目为例,将最下面的提示按钮背景设置为透明效果。 选中提示按钮,右键选择属性,如下图所示:在外观→颜色中将提示按钮的开、关状态颜色均修改为透明,如下图所示:最后效果如下所示:
0
0
0
浏览量2012
番茄炒蛋不要蛋

VirtualBox 虚拟机因系统异常关机虚拟机启动项不见了

一、简介因上次异常关闭虚拟机正在运行的系统,今天打开VirtualBox虚拟机发现之前安装好的虚拟机系统不见了,愣了一会,仔细回想一下,应该是上次关闭虚拟机异常导致的,如何解决呢,一开始的想法是重新安装一个虚拟机,这是一个最笨的解决办法,重装后要重新配置Ubuntu所有的配置,相当麻烦费时,最好的办法就是想法解决,总不能以后异常关闭虚拟机出现同样的问题再重装系统吧。二、打开虚拟机首先打开虚拟机,这个是有问题的没有系统的界面        点击界面上的控制,然后选择注册,找到虚拟机的安装目录,然后选择需要找回的虚拟机自己的.vbox文件,点击打开按钮即可:三、找到启动按钮即可
0
0
0
浏览量1109
番茄炒蛋不要蛋

LabVIEW采集鼠标、键盘数据

鼠标、键盘输入数据是应用程序最基本的交互操作方式,本篇博文将分享LabVIEW如何获取这些数据的方法。在程序窗口,鼠标右键选择:互联接口→输入设备控制就可以看到一系列鼠标和键盘数据采集组件,如下图所示:输入设备控制VI用于获得已连接到计算机的操纵杆、键盘或鼠标的信息,组件说明如下所示:通过一个小案例使用输入设备控制VI监视鼠标和键盘动作,可以判断鼠标左键点击、右键点击、鼠标位置以及按下的键盘按键信息,实现代码如下所示:效果如下所示:
0
0
0
浏览量2013
番茄炒蛋不要蛋

LabVIEW播放提示声音或者音乐

使用LabVIEW播放提示声音或者音乐,可在LabVIEW中右键鼠标:函数→声音→输出,选择相应的函数,如下图所示:播放提示声音或者音乐流程为:播放文件、判断播放是否结束以及最后播放结束释放资源,如下图所示:给各位分享LabVIEW播放提示声音或者音乐的实现例子。本案例可以导入声音文件,当播放结束、有异常错误或者点击停止按钮后会跳出循环释放资源,实现如下所示:
0
0
0
浏览量2010
番茄炒蛋不要蛋

安装库时候:ubuntu出现pip3 AttributeError: ‘_NamespacePath

参考:python - AttributeError: '_NamespacePath' object has no attribute 'sort' - Stack Overflow解决办法:sudo python3(python) setup.py install第二个问题是:bash: /usr/bin/pip3: No such file or directory解决办法:pip 安装包时报错 /usr/bin/pip: No such file or directory_jjkang的博客-CSDN博客
0
0
0
浏览量457
番茄炒蛋不要蛋

解决编译caffe时 make all报错,error regenerate this file w

参考:https://blog.csdn.net/Changer_sun/article/details/79264326 这篇博客解决如何重新Ubuntu16.04重装protobuf2.6.1版本,参考:https://blog.csdn.net/aBlueMouse/article/details/77744023,即:在网上寻求帮助的时候,我发现不同的人用不同的方法都解决了标题的问题,我试过了sudo pip install -Iv protobuf==3.0.0-alpha-1, sudo apt-get install libprotobuf-dev等等方法,都没有起作用,最后我通过:sudo apt-get remove libprotobuf-dev sudo apt-get remove protobuf-compiler sudo apt-get remove python-protobuf       删除了我上述位置的protobuf,然后感谢@诚石 的博文python版protobuf安装,按照他的方式,我在我下的2.6.1版本的protobuf文件夹下依次按照步骤执行:下载:https://github.com/protocolbuffers/protobuf/releases Release Protocol Buffers v2.6.1 · protocolbuffers/protobuf · GitHub下载最后一个Source code (tar.gz)tar zxvf protobuf-2.6.1.tar.gz cd protobuf-2.6.1 ./configure make make check make install cd python python setup.py build(这一步可能因为网络原因,下载文件较慢) python setup.py test(可能报错,但是不影响后面下一步) python setup.py install执行完后会在 protobuf-2.6.1/python 文件夹下出现一个google的文件夹,将这个文件夹用管理员的方式复制到/usr/lib/python2.7/dist-packages下,即在protobuf-2.6.1/python文件下:sudo cp -r google /usr/lib/python2.7/dist-packages也就是上面说的protobuf的位置,然后我的问题就解决了,然后进入caffe:make all即可
0
0
0
浏览量234
番茄炒蛋不要蛋

Ubuntu系统界面启动后启动开机自启动后锁屏

一、简介:        目前,我们系统开机自启动需要打开界面后才能启动,有两种解决办法,第一种就是修改启动顺序,第二种就是打开界面后启动开机启动脚本后再立马通过命令锁屏,目前,通过第二种办法进行操作实现,第一种方案等以后再实现二、安装安装锁屏命令sudo apt install gnome-screensaver三、执行锁屏操作gnome-screensaver-command -l四、修改开机启动脚本        经过前面安装和操作测试后,可以通过命令行实现锁屏,下面需要修改开机自启动配置文件,让界面进入后,执行启动脚本后,执行锁屏,然后再执行其它自启动操作。创建test.sh添加执行权限:sudo chmod +x test.sh #!/bin/zsh echo -e "\033[45;37m---------roslaunch rosbridge_server无桌面后台运行供安卓APP数据采集---------\033[0m" roslaunch cartographer_ros mapping.launch echo -e "\033[45;37m---------开启锁屏---------\033[0m" gnome-screensaver-command -l & 打开终端,输入:gnome-session-properties设置开机自启动即可。
0
0
0
浏览量1848
番茄炒蛋不要蛋

Ubuntu16.04 安装配置Caffe GPU

1、前面已经安装完显卡驱动和cuda8.02、安装caffe:参考:Ubuntu16.04 安装配置Caffe - 一生不可自决 - 博客园3、下载cuDNN:参考:Ubuntu16.04 Caffe 安装步骤记录(超详尽)_yhao的博客-CSDN博客_caffe安装下载地址:https://developer.nvidia.com/rdp/cudnn-archive#a-collapse51b选择:4、参考链接 https://blog.csdn.net/yhaolpz/article/details/71375762 文件中的进入cuDNN5.1解压之后的include目录,在命令行进行如下操作。严格按照否则会编译caffe会报如下错误:5、 make runtest过程中报错:意思是编译的过程中缺少libcudart.so.8.0文件参考:    https://blog.csdn.net/weixin_43439673/article/details/84198164                https://blog.csdn.net/w_q_q2017/article/details/83781976可以解决以上问题:具体过程如下:然后再次make runtest,报错缺少libcudnn.so.5文件同样:做如下操作然后就可以再次make runtest了。6、编译pycaffe参考:https://www.cnblogs.com/go-better/p/7161006.html 中的编译pycaffe就可以了按照这篇博客的步骤逐步操作即可:唯一变的是.bashrc文件:7、打开Python,成功!!
0
0
0
浏览量507
番茄炒蛋不要蛋

ubuntu16.04安装caffe—CPU

1、首先列出我配置好的 Makefile.config文件截图:2、安装第三方库:      sudo apt-get install python-skimage3、参考安装网址:ubuntu16.04安装caffe cpu版_Double_V的博客-CSDN博客4、在bashrc中添加caffe路径打开:gedit .bashrc在最后添加如下export PYTHONPATH=/home/dxy/caffe/python:$PYTHONPATH保存.bashrc后:source .bashrc这样在任意终端都可以导入caffe了5、参考make 报错解决办法网址:.build_release/lib/libcaffe.so: undefined reference to cv::imread(cv::String const&, int)’_u011636440的博客-CSDN博客6、Makefile.config整个文件## Refer to http://caffe.berkeleyvision.org/installation.html # Contributions simplifying and improving our build system are welcome! # cuDNN acceleration switch (uncomment to build with cuDNN). # USE_CUDNN := 1 # CPU-only switch (uncomment to build without GPU support). CPU_ONLY := 1 # uncomment to disable IO dependencies and corresponding data layers # USE_OPENCV := 0 # USE_LEVELDB := 0 # USE_LMDB := 0 # This code is taken from https://github.com/sh1r0/caffe-android-lib # USE_HDF5 := 0 # uncomment to allow MDB_NOLOCK when reading LMDB files (only if necessary) # You should not set this flag if you will be reading LMDBs with any # possibility of simultaneous read and write # ALLOW_LMDB_NOLOCK := 1 # Uncomment if you're using OpenCV 3 OPENCV_VERSION := 3 # To customize your choice of compiler, uncomment and set the following. # N.B. the default for Linux is g++ and the default for OSX is clang++ # CUSTOM_CXX := g++ # CUDA directory contains bin/ and lib/ directories that we need. CUDA_DIR := /usr/local/cuda # On Ubuntu 14.04, if cuda tools are installed via # "sudo apt-get install nvidia-cuda-toolkit" then use this instead: # CUDA_DIR := /usr # CUDA architecture setting: going with all of them. # For CUDA < 6.0, comment the *_50 through *_61 lines for compatibility. # For CUDA < 8.0, comment the *_60 and *_61 lines for compatibility. # For CUDA >= 9.0, comment the *_20 and *_21 lines for compatibility. CUDA_ARCH := -gencode arch=compute_20,code=sm_20 \ -gencode arch=compute_20,code=sm_21 \ -gencode arch=compute_30,code=sm_30 \ -gencode arch=compute_35,code=sm_35 \ -gencode arch=compute_50,code=sm_50 \ -gencode arch=compute_52,code=sm_52 \ -gencode arch=compute_60,code=sm_60 \ -gencode arch=compute_61,code=sm_61 \ -gencode arch=compute_61,code=compute_61 # BLAS choice: # atlas for ATLAS (default) # mkl for MKL # open for OpenBlas BLAS := atlas # Custom (MKL/ATLAS/OpenBLAS) include and lib directories. # Leave commented to accept the defaults for your choice of BLAS # (which should work)! # BLAS_INCLUDE := /path/to/your/blas # BLAS_LIB := /path/to/your/blas # Homebrew puts openblas in a directory that is not on the standard search path # BLAS_INCLUDE := $(shell brew --prefix openblas)/include # BLAS_LIB := $(shell brew --prefix openblas)/lib # This is required only if you will compile the matlab interface. # MATLAB directory should contain the mex binary in /bin. # MATLAB_DIR := /usr/local # MATLAB_DIR := /Applications/MATLAB_R2012b.app # NOTE: this is required only if you will compile the python interface. # We need to be able to find Python.h and numpy/arrayobject.h. PYTHON_INCLUDE := /usr/include/python2.7 \ /usr/lib/python2.7/dist-packages/numpy/core/include # Anaconda Python distribution is quite popular. Include path: # Verify anaconda location, sometimes it's in root. # ANACONDA_HOME := $(HOME)/anaconda # PYTHON_INCLUDE := $(ANACONDA_HOME)/include \ # $(ANACONDA_HOME)/include/python2.7 \ # $(ANACONDA_HOME)/lib/python2.7/site-packages/numpy/core/include # Uncomment to use Python 3 (default is Python 2) # PYTHON_LIBRARIES := boost_python3 python3.5m # PYTHON_INCLUDE := /usr/include/python3.5m \ # /usr/lib/python3.5/dist-packages/numpy/core/include # We need to be able to find libpythonX.X.so or .dylib. PYTHON_LIB := /usr/lib # PYTHON_LIB := $(ANACONDA_HOME)/lib # Homebrew installs numpy in a non standard path (keg only) # PYTHON_INCLUDE += $(dir $(shell python -c 'import numpy.core; print(numpy.core.__file__)'))/include # PYTHON_LIB += $(shell brew --prefix numpy)/lib # Uncomment to support layers written in Python (will link against Python libs) # WITH_PYTHON_LAYER := 1 # Whatever else you find you need goes here. INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu/hdf5/serial # If Homebrew is installed at a non standard location (for example your home directory) and you use it for general dependencies # INCLUDE_DIRS += $(shell brew --prefix)/include # LIBRARY_DIRS += $(shell brew --prefix)/lib # NCCL acceleration switch (uncomment to build with NCCL) # https://github.com/NVIDIA/nccl (last tested version: v1.2.3-1+cuda8.0) # USE_NCCL := 1 # Uncomment to use `pkg-config` to specify OpenCV library paths. # (Usually not necessary -- OpenCV libraries are normally installed in one of the above $LIBRARY_DIRS.) # USE_PKG_CONFIG := 1 # N.B. both build and distribute dirs are cleared on `make clean` BUILD_DIR := build DISTRIBUTE_DIR := distribute # Uncomment for debugging. Does not work on OSX due to https://github.com/BVLC/caffe/issues/171 # DEBUG := 1 # The ID of the GPU that 'make runtest' will use to run unit tests. TEST_GPUID := 0 # enable pretty build (comment to see full commands) Q ?= @
0
0
0
浏览量2015
番茄炒蛋不要蛋

LabVIEW生成应用程序(exe)和安装程序(installer)

使用LabVIEW编写好的程序最后往往需要将程序拿到目标电脑上去运行,如何将程序从开发电脑上移植到目标电脑上呢?有两种方法:1、在目标电脑上安装LabVIEW以及相关驱动和工具包,然后将vi或者整个项目拷贝到目标电脑上。然而安装LabVIEW和各种工具包会比较耗费时间,且vi可以被任意修改,容易引起误操作,如果只是运行程序,则不推荐这种方法。2、将LabVIEW编写的程序在开发电脑上编译生成独立可执行程序(exe),然后将可执行程序移植到目标电脑上,这里的移植分为两种方式:将生成的exe拷贝到目标电脑上,然后在目标电脑上单独安装LabVIEW运行引擎和需要的驱动以及工具包等,此方法中安装驱动和工具包也需要花费较多时间,不推荐。将生成的exe和一些用到的组件打包生成installer,即安装程序,然后在目标电脑上运行安装程序即可,这样安装完成后,之前生成的exe、LabVIEW运行引擎以及其他用到的工具包会自动安装到目标电脑上,这种方法移植程序比较简单,是最常用的方法。在讲解之前有两点需要注意:1、生成安装程序(installer)之前必须要先生成应用程序(exe)。2、程序VI文件必须要在项目中,如果只是单一的VI文件无法进行生成操作,需要用户新建项目,导入VI文件,如下图所示:1、生成应用程序(exe)第1步:打开工程项目,选中“程序生成规范”,点击右键,选择“新建”,新建“应用程序EXE”,如下图所示:第2步:填写产品生成信息,包括:生成的名称和路径,如下图所示:第3步:添加源文件,将项目中VI文件,导入成应用程序(exe)的启动VI,如下图所示:第4步:设置图标,可以选择下载素材网站好或者自行设计的.ico文件,这里我使用素材网站下载好的图标文件,如下图所示:第5步:最后可以点击生成预览,查看预览生成的路径和文件,如下图所示:第6步:生成应用程序(exe),如下图所示:可以在工程文件中查看生成的应用程序(exe)文件,也可以进入生成路径中,查看相关文件,如下图所示:点击“LabVIEW科学计算器.exe”文件,可以顺利运行应用程序。2、生成安装程序(installer)在生成应用程序(exe)的基础上就可以生成安装程序(installer)了。第1步:在工程项目,选中“程序生成规范”,点击右键,选择“新建”,新建“安装程序”,如下图所示:第2步:填写产品生成信息,包括:生成的名称和路径,如下图所示:第3步:选择“源文件”,在项目文件视图中单击选择之前创建的应用程序生成规范,然后单击添加箭头,将应用程序添加到目标文件夹中,右边目标视图可以看到添加结果,如下图所示:第4步:选择“快捷方式”,修改右边的快捷方式名称和子目录名称。快捷方式名称对应着将来在开始菜单中看到的快捷方式图标的名称,子目录对应着快捷方式在开始菜单中所处的文件夹名称,如下图所示:第5步:选择“附加安装程序”,勾选相应的LabVIEW运行引擎和必要的驱动程序以及工具包等,之后这些驱动以及工具包会一起包含在生成的installer中。LabVIEW在这里会自动勾选一些必要的NI安装程序,但是有可能并没有包含所有需要安装的程序,此时程序中使用到了哪些驱动以及工具包,在这里配置的时候就需要勾选哪些工具包。如下图所示:第6步:最后生成安装程序(installer),如下图所示:可以在工程文件中查看生成的应用程序(exe)和安装程序(installer文件,也可以进入生成路径中,查看相关文件,如下图所示:点击“LabVIEW科学计算器.exe”,选择安装路径,可以进行安装操作,如下图所示:
0
0
0
浏览量2012
番茄炒蛋不要蛋

error This file requires compiler and library supp

在编译catkin_make的时,报错error This file requires compiler and library support for the ISO C++ 2011 standard.参考网址:error This file requires compiler and library support for the ISO C++ 2011 standard._西涯先生的博客-CSDN博客在对应的功能包中的CMakeLists.txt中任意位置添加如下,可以编译成功:SET( CMAKE_CXX_FLAGS "-std=c++11 -O3")
0
0
0
浏览量1777
番茄炒蛋不要蛋

VINS-Mono环境配置—Cere的安装

参考链接:VINS-Mono环境配置与测试笔记_guaijiaodie2064的博客-CSDN博客_vins配置这个链接中的安装注意,建立好build文件后,要进入后编译,即cd build  ,然后再cmake .. 接下来的的操作参考二:Installation — Ceres Solver遇到一个安装问题:参考 :cmake安装遇到问题总结_野孩子的专栏-CSDN博客这个错误的解决办法就是安装没有权限,,采用:sudo make install 即可,因此以后要切记加sudosudo make install
0
0
0
浏览量1780
番茄炒蛋不要蛋

LabVIEW跳转访问网页

在设计LabVIEW应用程序时,点击按键,跳转访问网页的功能十分常见。使用LabVIEW跳转网页的方式有很多种,本篇博文推荐一种比较简单的方法:执行系统命令。执行系统命令实质上就是LabVIEW调用Windows CMD指令,通过Windows CMD指令访问网页。可在LabVIEW中右键鼠标:互联接口→库与可执行程序→执行系统命令,如下所示: 执行系统命令VI说明如下所示:Windows CMD指令网上资料很多,这里就不再赘述了,感兴趣的朋友可以自行研究学习。我在Windows环境中使用指令:CMD /C start  https://blog.csdn.net/m0_38106923,可以正常访问我的博客网站。将该指令使用LabVIEW调用,实现如下所示:
0
0
0
浏览量2011
番茄炒蛋不要蛋

在 Ubuntu 16.04/18.04 上安装 yarn

一、简介        yarn是与npm兼容的JavaScript软件包管理器,可帮助您自动化安装,更新,配置和删除npm软件包的过程二、启用Yarn存储库三、更新依赖库并安装        具体步骤代码如下:curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add - echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list sudo apt update sudo apt install yarn        备注:如果您尚未在系统上安装 Node.js ,则上面的命令将安装它。那些正在使用nvm的用户可以使用以下命令跳过Node.js的安装sudo apt install --no-install-recommends yarn 四、查看版本yarn --version 1.22.18五、添加依赖包进入工程应用包添加依赖包:六、运行应用程序yarn start在开发模式下运行应用程序。打开http://localhost:3000在浏览器中查看。如果您进行编辑,该页面将重新加载。您还将在控制台中看到任何 lint 错误
0
0
0
浏览量439
番茄炒蛋不要蛋

如何局域网下传输文件(可代替优盘)

通过局域网传输文件或视屏,代替优盘注释:开头scp然后:输入我自己的要传输的文件路径和文件名称:/home/dxy/Screenshot.png然后:输入对方的主机名称jh ,对方的输入ip:192.168.0.113 ,对方的接收存储文件路径即可:/home/jh/然后:输入对方的电脑密码
0
0
0
浏览量1429
番茄炒蛋不要蛋

python2 报错:SyntaxError: Non-ASCII character ‘\xe2‘

SyntaxError: Non-ASCII character '\xe2' in file”翻译为中文的意思是:在文件中存在着非法的ASCII字符意思是出现有代码中有 中文解决办法:#!/usr/bin/env python#coding=utf-8
0
0
0
浏览量1544
番茄炒蛋不要蛋

LabVIEW串口通信

串口通信(Serial Communications)的概念非常简单,串口按位(bit)发送和接收字节的通信方式。在LabVIEW中串口通信使用范围非常广泛,例如,通过串口使用ModBus协议驱动仪器、串口驱动PLC设备等。在LabVIEW中有专业的VI(VISA)可以驱动串口进行数据读、写操作,在函数面板 → 仪器I/O → 串口子面板中,如下图所示:相应的说明可参见帮助文档,如下图所示:通过几个简单的Demo示例了解VISA串口函数的使用方法。代码下载:LabVIEW串口通信-嵌入式文档类资源-CSDN下载1、串口写入数据打开串口COM3,通信速率115200/bps,写入数据:A1$,示例代码如下所示:2、串口读取数据打开串口COM8,通信速率115200/bps,读取20个字节长度数据,示例代码如下所示:3、清除缓存区以上两种方法介绍了LabVIEW串口最基本的读、写操作,实际上直接这样使用的存在问题的。 因为在大多数情况下串口设备不管在LabVIEW执行或着关闭的状态都一直在上传数据。端口在收到第一个字符的时候可能没有被配置好,所以它读到的是无效的缓冲区信息,这样直接开启后进行读、写数据极其容易导致错误。为了解决这样的问题,在串口配置后需要放一个延时(大约XXXms),就可以让Serial port有足够的时间完成设定。再来使用VISA清空I/O缓冲区函数,就可以将接收缓冲区中不正确的资料清除。对串口读取功能进行优化,示例代码如下所示:以下示例中读取数据长度的方式进行优化,通过属性节点(Bytes at Port)获取字节长度,无需再手动定义长度,避免定义长度太短导致接收不全或者定义数据过长导致浪费情况。4、设置缓存区目前VISA串口缓冲区大小最大可达到 2的32次方(4,294,967,296 字节),可以在该范围内定义缓存区大小,例如以下示例,定义缓冲区大小为80000字节。5、数据超时在初始化VISA串口时,可以设置超时时间,当读、写数据超出时间,会提示错误信息。以下示例定义串口通信超时时间是10秒。6、数据终止符在初始化VISA串口时,可以设置终止符,通过调用终止读取操作,从串行设备读取终止字符后读取操作会自动终止。例如以下示例,读取到“$”字符(十六进制:0X36)时,会停止读取操作。
0
0
0
浏览量2010
番茄炒蛋不要蛋

LabVIEW修改应用程序窗口外观

之前我们分享的LabVIEW实现科学计算器小项目,打包成EXE可执行文件后,运行时可以看到:标题栏、菜单栏、垂直滚动条、水平滚动条等信息,十分不美观,如下图所示:那有没有办法去除这些不需要的外观信息呢?当然是有的。选择文件→VI属性→窗口外观→自定义外观就可以操作,如下图所示:将不需要的多余信息的√去掉就可以。这里我去除了垂直滚动条、水平滚动条,运行后效果如下所示:
0
0
0
浏览量2010
番茄炒蛋不要蛋

Opencv2.x-python 与opencv3.x-python特征点检测方法

Open2.x-Python 特征点检测方法对于OpenCV2.x-Python,特征点检测及显示方法如下:# OpenCV2.x-Pythonfunction = cv2.Function_Name()keypoints = function.detect(img, None)img2 = cv2.drawKeyPoints(img, keypoints, color=(0,255,0))其中Function_Name就是特征检测方法的函数名,如BRISK、FastFeatureDetector等。比如,在OpenCV2.x-Python,想使用Fast来检测特征点,示例如下:# OpenCV2.x-Pythonfast = cv2.FastFeatureDetector()keypoints = fast.detect(img, None)img2 = cv2.drawKeypoints(img, keypoints, color=(255,0,0))Open3.x-Python 特征点检测方法对于OpenCV3.x-Python,特征点检测及显示方法如下:# OpenCV3.x-Python# 注意有_create()后缀function = cv2.Function_Name_create()keypoints = function.detect(img, None)# 注意显示之前要先将img2初始化img2 = img.copy()img2 = cv2.drawKeyPoints(img, keypoints, color=(0,255,0))其中Function_Name就是特征检测方法的函数名,如BRISK、FastFeatureDetector等。[注意1]:对于OpenCV3.x-Python,还要在Function_Name后加上_create后缀。其实这一点在opencv_doc中具体的函数python使用方法中已经注明了。[注意2]:对于OpenCV3.x-Python,若要显示检测的特征点,需要初始化img2,才能正常显示。这里可以先使用img2 = img.copy()完成拷贝初始化。下面就重点介绍OpenCV3.x-Python中的各种特征点检测方法的使用示例。测试图像为标准的lena.pngAKAZE Feature Detection#!/usr/bin/env python # -*- coding=utf-8 -*- # Summary: 使用OpenCV3.x-Python检测AKAZE特征点 # Author: Amusi # Date: 2018-03-17 # Reference: https://docs.opencv.org/master/d8/d30/classcv_1_1AKAZE.html import cv2 import numpy def main(): img = cv2.imread("lena.png") cv2.imshow('Input Image', img) cv2.waitKey(0) # 检测 akaze = cv2.AKAZE_create() keypoints = akaze.detect(img, None) # 显示 # 必须要先初始化img2 img2 = img.copy() img2 = cv2.drawKeypoints(img, keypoints, img2, color=(0,255,0)) cv2.imshow('Detected AKAZE keypoints', img2) cv2.waitKey(0) if __name__ == '__main__': main()BRISK Feature Detection#!/usr/bin/env python # -*- coding=utf-8 -*- # Summary: 使用OpenCV3.x-Python检测BRISK特征点 # Author: Amusi # Date: 2018-03-17 # Reference: https://docs.opencv.org/master/de/dbf/classcv_1_1BRISK.html import cv2 import numpy def main(): img = cv2.imread("lena.png") cv2.imshow('Input Image', img) cv2.waitKey(0) brisk = cv2.BRISK_create() keypoints = brisk.detect(img, None) # 必须要先初始化img2 img2 = img.copy() img2 = cv2.drawKeypoints(img, keypoints, img2, color=(0,255,0)) cv2.imshow('Detected BRISK keypoints', img2) cv2.waitKey(0) if __name__ == '__main__': main()Fast Feature Detection#!/usr/bin/env python # -*- coding=utf-8 -*- # Summary: 使用OpenCV3.x-Python检测FAST特征点 # Author: Amusi # Date: 2018-03-17 # Reference: https://docs.opencv.org/master/df/d74/classcv_1_1FastFeatureDetector.html import cv2 import numpy def main(): img = cv2.imread("lena.png") cv2.imshow('Input Image', img) cv2.waitKey(0) # 2018-03-17 Amusi: OpenCV3.x FeatureDetector写法有变化 # OpenCV2.x # fast = cv2.FastFeatureDetector() # keypoints = fast.detect(img, None) # OpenCV3.x # 注意有_create()后缀 fast = cv2.FastFeatureDetector_create() keypoints = fast.detect(img, None) # 必须要先初始化img2 img2 = img.copy() img2 = cv2.drawKeypoints(img, keypoints, img2, color=(0,255,0)) cv2.imshow('Detected FAST keypoints', img2) cv2.waitKey(0) if __name__ == '__main__': main()KAZE Feature Detection#!/usr/bin/env python # -*- coding=utf-8 -*- # Summary: 使用OpenCV3.x-Python检测KAZE特征点 # Author: Amusi # Date: 2018-03-17 # Reference: https://docs.opencv.org/master/d3/d61/classcv_1_1KAZE.html import cv2 import numpy def main(): img = cv2.imread("lena.png") cv2.imshow('Input Image', img) cv2.waitKey(0) # 检测 kaze = cv2.KAZE_create() keypoints = kaze.detect(img, None) # 显示 # 必须要先初始化img2 img2 = img.copy() img2 = cv2.drawKeypoints(img, keypoints, img2, color=(0,255,0)) cv2.imshow('Detected KAZE keypoints', img2) cv2.waitKey(0) if __name__ == '__main__': main()ORB Feature Detection#!/usr/bin/env python # -*- coding=utf-8 -*- # Summary: 使用OpenCV3.x-Python检测ORB特征点 # Author: Amusi # Date: 2018-03-17 # Reference: https://docs.opencv.org/master/db/d95/classcv_1_1ORB.html import cv2 import numpy def main(): img = cv2.imread("lena.png") cv2.imshow('Input Image', img) cv2.waitKey(0) # 检测 orb = cv2.ORB_create() keypoints = orb.detect(img, None) # 显示 # 必须要先初始化img2 img2 = img.copy() img2 = cv2.drawKeypoints(img, keypoints, img2, color=(0,255,0)) cv2.imshow('Detected ORB keypoints', img2) cv2.waitKey(0) if __name__ == '__main__': main()----------我是可爱的分割线----------下面介绍属于nonfree的特征检测方法,如SIFT和SURF。这些方法在opencv-contrib中,所以想要使用前,请卸载当前非contrib版本的opencv,即pip uninstall opencv-python后;再重新安装opencv-contrib-python,即pip install opencv-contrib-pythonSIFT Feature Detection#!/usr/bin/env python # -*- coding=utf-8 -*- # Summary: 使用OpenCV3.x-Python检测SIFT特征点 # Author: Amusi # Date: 2018-03-17 # Reference: https://docs.opencv.org/master/d5/d3c/classcv_1_1xfeatures2d_1_1SIFT.html import cv2 import numpy def main(): img = cv2.imread("lena.png") cv2.imshow('Input Image', img) cv2.waitKey(0) # 检测 sift = cv2.xfeatures2d.SIFT_create() keypoints = sift.detect(img, None) # 显示 # 必须要先初始化img2 img2 = img.copy() img2 = cv2.drawKeypoints(img, keypoints, img2, color=(0,255,0)) cv2.imshow('Detected SIFT keypoints', img2) cv2.waitKey(0) if __name__ == '__main__': main()SURF Feature Detection#!/usr/bin/env python # -*- coding=utf-8 -*- # Summary: 使用OpenCV3.x-Python检测SURF特征点 # Author: Amusi # Date: 2018-03-17 # Reference: https://docs.opencv.org/master/d5/df7/classcv_1_1xfeatures2d_1_1SURF.html import cv2 import numpy def main(): img = cv2.imread("lena.png") cv2.imshow('Input Image', img) cv2.waitKey(0) # 检测 surf = cv2.xfeatures2d.SURF_create() keypoints = surf.detect(img, None) # 显示 # 必须要先初始化img2 img2 = img.copy() img2 = cv2.drawKeypoints(img, keypoints, img2, color=(0,255,0)) cv2.imshow('Detected SURF keypoints', img2) cv2.waitKey(0) if __name__ == '__main__': main()注:OpenCV3.x-Python与OpenCV2.x-Python有很多函数的用法不同,虽然网上教程大多参次不齐,但可以直接去官网查看最新的用法(官网即正义)
0
0
0
浏览量2014
番茄炒蛋不要蛋

Ubuntu18.04 python3 安装 paramiko 报错及解决办法

报错如截图所示:no modul named 'setuptools_rust'解决办法:pip3 install --upgrade pip
0
0
0
浏览量1645
番茄炒蛋不要蛋

LabVIEW控制电脑关机、休眠、注销和重启

在LabVIEW跳转访问网页博文中,我们使用执行系统命令的方式执行Windows CMD指令实现网页访问,本篇博文在此技术上拓展讲解几个有意思的功能,实现控制电脑关机、休眠锁屏和远程唤醒。还是在LabVIEW中右键鼠标:互联接口→库与可执行程序→执行系统命令,如下所示:使用LabVIEW调用,实现如下所示:
0
0
0
浏览量2010
番茄炒蛋不要蛋

LabVIEW显示控件中内容过长设置自动滚动条

本篇博文分享程序设计时一个细节小技巧,在LabVIEW显示控件中内容过长设置自动滚动条。LabVIEW显示控制设置滚动条是非常简单的,选中组件,鼠标右键选择:属性→外观→使能显示垂直滚动条,如下图所示:这样可见显示控件右侧有了垂直滚动条,如下所示:但是在使用时,当显示控件中数据显示填充满后,滚动条并不会自动下移,此时为了方便查看数据可以设置滚动条自动调整至末尾。需要在程序面板中选中显示控件,鼠标点击右键,选择:创建→属性节点→文本→滚动条位置,如下图所示:滚动条位置属性可以设置滚动框在滚动条中的位置,具体说明如下所示:引用了滚动条位置属性,在程序中将最大行数赋予该属性,则表示将自动滚动到文本最后一行,实现程序如下所示:
0
0
0
浏览量2010
番茄炒蛋不要蛋

关于不能apt-ge updatet或Could not get lock /var/lib/dpk

参考:sudo apt-get update 错误 解决方法 - timkyle_zhang - 博客园关于Ubuntu中Could not get lock /var/lib/dpkg/lock解决方案_jiangjiane-CSDN博客说明:sudo apt-get update错误如下:W: A error occurred during the signature verification. The repository is not updated and the previous index files will be used. GPG error: http://extras.ubuntu.com precise Release: The following signatures were invalid: BADSIG 16126D3A3E5C1192 Ubuntu Extras Archive Automatic Signing Key <ftpmaster@ubuntu.com>W: Failed to fetch http://extras.ubuntu.com/ubuntu/dists/precise/ReleaseW: Some index files failed to download. They have been ignored, or old ones used instead.解决方法:sudo rm -rf /var/lib/apt/lists/* sudo apt-get update或者:sudo rm /var/lib/dpkg/lock sudo dpkg --configure -a sudo apt updateE: 无法获得 /var/lib/apt/lists/partial/cn.archive.ubuntu.com_ubuntu_dists_xenial-backports_InRelease 的状态 - pkgAcqTransactionItem::TransactionState-stat (2: 没有那个文件或目录)方法二(亲测可以用):sudo rm /var/lib/apt/lists/lock
0
0
0
浏览量627
番茄炒蛋不要蛋

python的虚拟环境变量创建(virtualenv)

1、安装virtualenv:                  sudo apt-get install python-virtualenv1、利用virtualenv创建工程目录 virtualenv --no-site-packages myprj不出意外的话,这个时候一定可以在当前目录下看到myprj目录,这就是我们的工程目录3、进入工程目录,使能环境变量cd myprj/ source bin/activate4、在私有环境变量下安装第三方库 pip3 install --user numpy5、退出这个私有环境deactivate      
0
0
0
浏览量838
番茄炒蛋不要蛋

在Ubuntu20.04中为python2和python3使用virtualenvwrapper

1、创建Python2虚拟环境mkvirtualenv ros_cv -p python这里创建一个ros_cv 的虚拟环境,制定的Python环境为22、创建Python3的虚拟环境3、进入指定的虚拟环境工作workon 双击tab键4、停止虚拟环境deactivate5、删除虚拟环境:rmvirtualenv6、使用pip freeze 将当前的虚拟环境中的库名称全部存储在.txt中pip3 freeze >requirements.txt7、使用pip install安装虚拟环境,这样方便直接把环境移植到其他系统中pip install -r requirements.txt
0
0
0
浏览量2015
番茄炒蛋不要蛋

windows7 putty远程连接我的Ubuntu20.04系统

1、在我的ubutnu20.04安装ssh                                sudo apt-get install openssh-server2、查看被访问的电脑的的IP地址:                              ifconfig如图所示查到的IP地址为:192.168.100.2553、查看被访问电脑的用户名:那么这台被访问的用户名就是dxy4、对被访问的电脑进行参数设置:设置结果如图所示我们可以看到,这几行默认不允许root登录SSH,所以我们要进行相应设置,我们替换后的地方为如下:# Authentication: LoginGraceTime 120 #PermitRootLogin without-password PermitRootLogin no StrictModes yes5、windows上安装putty并设置6、点击open并输入被连接的ubutnu20.04密码7、连接成功
0
0
0
浏览量2013
番茄炒蛋不要蛋

LabVIEW实现Modbus通信

Modbus通信协议是仪器控制中常用的通信协议之一,基于Modbus协议可实现数据的读、写操作。关于Modbus通信协议基础知识可先通过以下文章进行了解:一文看懂Modbus协议_不脱发的程序猿的博客-CSDN博客_modbus是哪层协议Modbus协议在串行链路上的实现_不脱发的程序猿的博客-CSDN博客Modbus协议完整中文版-硬件开发文档类资源-CSDN下载Modbus只是工业控制中常用的一种协议方式,本篇博文依旧是通过串口通信的方式实现基本的Mosbus操作。Modbus协议常用功能主要包括四部分:读写线圈、读取离散输入、读取输入寄存器和读写保持寄存器,具体基础知识可参见上文发的基础知识链接。使用LabVIEW实现Modbus协议通信有两种方式:Modbus库函数实现和VISA串口实现。下面分别介绍这两种方式。1、Modbus库Modbus库主要是依托封装好的LabVIEW VI库,直接调用就可以实现Modbus通信。使用Modbus库之前需要使用NI Package Manager进行安装。最简单的方式就是直接搜索Modbus,这里我们选择:LabVIEW NXG GModBus Over SerialLine工具包,串行通信就可以,如下图所示:还有一种方式安装Modbus库,搜索下载:LabVIEW数据记录与监控模块,如下图所示:这两种方式下载的ModBus库均位于:函数→数据通信中,如下图所示:本篇博文将以LabVIEW数据记录与监控模块下载方式的库为例进行讲解,主要原因是使用范围广泛,而且说明文档详实。下面分享一下ModBus库的使用代码。 1.1、线圈操作1.1.1、读取线圈以下示例打开COM3端口,通信速率115200/bps,串口模式为RTU模式,ID号为1,从起始地址0读取8个数量长度的寄存器数值。1.1.2、写入单线圈 以下示例打开COM3端口,通信速率115200/bps,串口模式为RTU模式,ID号为1,从起始地址2写入1个数量线圈寄存器(数值为:TRUE)。 1.1.3、写入多线圈 以下示例打开COM3端口,通信速率115200/bps,串口模式为RTU模式,ID号为1,从起始地址0写入5个数量线圈寄存器(数值均为:TRUE)。1.2、保持寄存器操作1.2.1、读取保持寄存器以下示例打开COM3端口,通信速率115200/bps,串口模式为RTU模式,ID号为1,从起始地址0读取4个数量长度的寄存器数值。1.2.2、 写入单个保持寄存器以下示例打开COM3端口,通信速率115200/bps,串口模式为RTU模式,ID号为1,将保持寄存器地址0写入数值33。1.2.3、写入多个保持寄存器以下示例打开COM3端口,通信速率115200/bps,串口模式为RTU模式,ID号为1,从起始地址0写入4个数量保持寄存器(数值为:1、4、6和8)。1.3、读取离散输入以下示例打开COM3端口,通信速率115200/bps,串口模式为RTU模式,ID号为1,从起始地址0读取10个数量长度的寄存器数值。1.4、 读取输入寄存器以下示例打开COM3端口,通信速率115200/bps,串口模式为RTU模式,ID号为1,从起始地址1读取4个数量长度的寄存器数值。项目代码下载:LabVIEW实现Modbus通信:Modbus库函数实现-嵌入式文档类资源-CSDN下载2、VISA串口VISA串口方式实现Modbus协议,本质上就是自己手写协议帧,每一类帧格式都需要自己来编写。这里可以再回顾一下LabVIEW串口通信的基础知识:LabVIEW串口通信_不脱发的程序猿的博客-CSDN博客_labview 串口通信2.1、线圈操作2.1.1、读取线圈以下示例打开COM3端口,通信速率115200/bps,Modbus功能码为01,ID号为1,从起始地址0读取8个数量长度的寄存器数值。2.1.2、 写入单线圈 以下示例打开COM3端口,通信速率115200/bps,Modbus功能码为05,ID号为1,从起始地址0写入数值0。2.1.3、 写入多线圈 以下示例打开COM3端口,通信速率115200/bps,Modbus功能码为0F,ID号为1,从起始地址0写入8个数量线圈寄存器,字节数为1,数值为0。2.2、保持寄存器操作2.2.1、读取保持寄存器以下示例打开COM3端口,通信速率115200/bps,Modbus功能码为03,ID号为1,从起始地址0读取4个数量寄存器。2.2.2、 写入单个保持寄存器以下示例打开COM3端口,通信速率115200/bps,Modbus功能码为06,ID号为1,从起始地址1写入数值0X0099。2.2.3、写入多个保持寄存器以下示例打开COM3端口,通信速率115200/bps,Modbus功能码为10,ID号为1,从起始地址0写入4个寄存器,字节数为8,数值分别为:0X00、0X11、0X00、0X22、0X00、0X33、0X00、0X44。2.3、读取离散输入以下示例打开COM3端口,通信速率115200/bps,Modbus功能码为02,ID号为1,从起始地址0读取8个数量长度的寄存器数值。2.4、读取输入寄存器以下示例打开COM3端口,通信速率115200/bps,Modbus功能码为04,ID号为1,从起始地址1读取4个数量长度的寄存器数值。
0
0
0
浏览量2016
番茄炒蛋不要蛋

LabVIEW实现CRC校验

CRC(循环冗余校验),是一种根据网络数据包或计算机文件等数据产生简短固定位数校验码的一种信道编码技术,主要用来检测或校验数据传输或者保存后可能出现的错误。它是利用除法及余数的原理来作错误侦测的。关于CRC校验的实验原理这里不再赘述,百度上有很多的解析,本篇博文主要讲解在LabVIEW环境中如何实现CRC校验。本篇博文介绍两种方法实现CRC校验:内部控件计算CRC校验和公式节点计算CRC校验。软件计算(注意CRC高低位顺序)效果如下图所示:项目资源下载可参加: LabVIEW实现CRC校验-嵌入式文档类资源1、内部控件计算CRC校验使用内部控件计算CRC校验就是使用基本的运算组件实现算法计算过程。实现代码如下所示: 2、公式节点计算CRC校验使用公式节点计算CRC校验,这里主要依托于:公式节点。公式节点可以实现在程序框图上计算数学公式或者使用C语言进行数值运算。这里我使用C语言编程实现CRC校验算法,通过LabVIEW输入数值和接收C语言算法输出数值,实现代码如下所示:
0
0
0
浏览量2012
番茄炒蛋不要蛋

LabVIEW使用移位寄存器计算平均值

本篇博文分享一种有趣的LabVIEW编程思维:使用移位寄存器计算平均值。移位寄存器是LabVIEW循环结构中很常用的一个小技巧,选中while循环框体,右击边框即可创建添加移位寄存器,如下图所示:关于移位寄存器基础知识不太了解的朋友可以看看这篇文章:labview入门到出家6(进阶篇)——移位寄存器的使用_老曹-laocao的博客-CSDN博客_labview移位寄存器常规计算平均值的方式是累加求和取平均,本篇博文将使用移位寄存器计算运行平均值。通过一个示例了解移位寄存器求平均的方法,示例效果如下所示:示例中LabVIEW运行生成随机数,使用通过Random Plot在前面板显示当前的随机值,并通过移位寄存器计算最近四个数值的运行平均值。其中,移位寄存器用于为循环的当前迭代提供一个在前一次迭代中生成的值。在下面的代码中,在给定的迭代中生成的随机数被传递到移位寄存器(在右侧),并在下一次迭代中作为值返回(在左侧)。如果对这个程序不够理解,可以在启用了高亮执行的情况下运行示例,观察在后续迭代中进入右移寄存器和离开左移寄存器的数据流。
0
0
0
浏览量2021
番茄炒蛋不要蛋

Python在Ubuntu系统的应用落地

本专栏主要集中在Ubuntu系统下如何使用python这门语言进行产品开发和应用到机器人技术落地开发
0
0
0
浏览量2253
番茄炒蛋不要蛋

LabVIEW开发技巧

LabVIEW开发过程中常用技巧分享
0
0
0
浏览量2310

履历