从NI Labview里提取一个3d控件cw3dgrph.ocx画三维波形图的
移植的示例:
import win.ui; /*DSG{{*/ var winform = win.form(text="aardio form";right=784;bottom=641) winform.add( AUTOSCALE={cls="checkbox";text="Autoscale"从NI Labview里提取一个3d控件cw3dgrph.ocx画三维波形图的
回复#1 @jerryxjr1220 :
echart的3d需要webgl支持,数据量大了卡的厉害
从NI Labview里提取一个3d控件cw3dgrph.ocx画三维波形图的
简单调用实例
import win.ui; /*DSG{{*/ var winform = win.form(text="aardio form";right=759;bottom=469) winform.add() /*}}*/ var dataX = {}; var dataY = {}; var dataZ = {}; var color = {}; // Parametric curve for (t = 0; 50; 0.001) {NI-VISA通信的调用
封装了个简单的库 , 下面是库代码和调用示例:
VISADllEx.aardio
//VISA通信库 class VISADllEx{ ctor( ){ ..table.gc(this,"close"); }; FindRsc = function(){ var stringList={}; var count = VisaFindRsrc(); if(count!=0){ for(i=0;count-1;1){ var str = VisaGetRsrc修改win.msgbox弹窗弹出的位置
上午解决弹出模态窗口快捷键问题的时候 , 突发奇想, 找到了系统自带的弹窗win.msgbox / win. msgboxTest 弹出位置修改问题的办法. ,
因为之前子网上搜过, 并没有找到任何办法, 都是建议自己重写一个msg窗口, 因为这几个函数并不会返回自己的句柄hwnd
我这里利用异步获取到激活窗口的句柄hwnd, 然后设置就行了.
软件中弹出模态对话框后的快捷键的处理方式
情景:
软件中有快捷键, 某种情况下弹出了模态对话框 , 但是此时仍然需要快捷键有效.
问题是: 模态对话框会拦截窗体的消息流通 , 此时快捷键会无效.如果用key.hook是可以拦截全局按键, 但是会影响到其他软件或文件的按键操作.
解决办法:
这里仍然可以使用key.hook来设置快捷键 , hook里判断前置窗口是主窗体还是弹窗(判断弹窗的父窗口仍然是主窗体), 然后操作.
NI-VISA通信的调用
visa在labview中连续使用的时候, 一般是这样
红色部分是获取串口缓冲池中有多少个数据字节数, 将这个字节数给读取函数 , 意思就是将缓冲池中所有的数据读出来.
那么代码中要用
#define VI_ATTR_ASRL_AVAIL_NUMaardio扩展库 数据维格表api
回复#10 @jerryxjr1220 :
没用过, 网上搜了下, 算法有一些 ,估计要一个个试验
NI-VISA通信的调用
2021-09-08 22:26 更新:
增加几个常用函数
2021-09-09 14:22 更新:
修正dll函数中几处错误
研究visa发现, 其实很多时候并不需要那么多的函数来使用, 为了对aardio中使用更友好, 我在RS官方示例基础上, 对dll进行了二次封装, 只保留了9个函数.
NI-VISA通信的调用
这里的示例都是使用的RSVisa.dll, RS和NI只是一点点区别, 实际上都是用的ivi的visa.lib进行的封装, 文档可以完全相互参考.
RS提供的visa测试软件功能更简洁,而且可以显示每一步所使用的代码, 更方便调试.
从测试软件里可以得到很多信息, 这些代码都是我们今后需要在程序里调用的,
NI-VISA通信的调用
调用Mosquitto实现mqtt物联网通信
感谢: indertust 分享代码
MQTT工作在 TCP/IP协议族上,是为硬件性能低下的远程设备以及网络状况糟糕的情况下而设计的发布/订阅型(publish/subscribe)消息协议.
此处使用的开源组件官方: https://mosquitto.org
目前代码还有几个问题未解决, 先分享出来供大家参考.
Mosquitto.aardio库代码如下:
一步一步自绘listbox实现html中的伸缩列表导航栏功能
回复#10 @jerryxjr1220 :
开源的好处就是可以任意修改代码为自己所用, 这个需求可以利用return返回值来自动修改menuList并刷新列表, 不用listbox.clear
可以这样操作:
1.库里增加个 this.MenuList = MenuList; 用来保存传递进来的表, 下面就可以修改这个表了.
2.this.OnClick() 函数增加return 返回值, 我们在库里接受到返回值, 然后去执行修改操作