程序中使用ACCESS数据库来保存数据,使用LabSQL工具包来连接数据库,打开之前请确认安装了这个工具包。
程序一运行时会先弹出密码登录系统,用户名和密码都为“vihome”。
这个程序实现的功能或者说使用到的知识点还是比较多的,主要有以下几种:1,简单的密码登录。
之前已经上传过一个密码登录的程序了,这里只是很简单的一个登录判断,有些会员不了解怎么样从密码程序到主程序的转换,这里是直接调用,如果在密码登录时选择取消,则通过输出错误的方法使主程序不执行而直接退出。
2,简单的错误处理。
会对错误进行提示,发生错误时用户可以选择继续或停止,如果在调试时记录一些经常发生的错误并添加到错误处理程序中,就可以有针对性地进行提示,并对应提出解决方法,这样程序就健壮一些。
3,生产-消费者结构数据采集和保存之间使用生产-消费者结构,二个循环之间通过队列来传递数据,这里还是比较简单的了,只是设置每十个数据作为一组进行保存,实际上使用中有些是需要根据时间来保存的,这些需要自己编程处理一下。
4,通过局部变量或通知来停止并行的循环由于要响应用户菜单操作或其它操作,使用并行循环的结构,这样二者之间需要同步停止,程序里面是使用通知来同步循环的停止的。
5,可以从数据采集卡中采集数据,也可以由软件模拟产生。
考虑到好多会员朋友并没有数据采集卡,程序里面可以设置采集的数据由软件模拟产生,在参数设置的系统参数设置里面,将“实际采集?”选择为“模拟采集”即可,软件一样可以正常运行,数据一样会保存,如果有数据采集卡的,也一样可以从数据采集卡中采集数据。
由于程序不太好,所以采样率和通道号都被固定了,免得出错。
程序中使用到了DAQmx8.5驱动程序,里面也有一些相关的DAQ的VI,如果你没安装DAQmx的话就有一些DAQ的VI找不到,导致程序没有办法运行,可以手动将这些找不到的VI删除掉或者使用禁用结构禁止掉,而在在程序中“参数设置”界面上的“系统参数”那里设置“模拟采集”即可,这样会在软件中模拟采集的数据,其它程序都可以正常运行。
如果装了DAQmx但没有数据采集卡,也要设置成模拟采集,这样程序才能正常运行,否则会出现找不到数据采集卡的报错。
6,波形图表双坐标显示从下图中可以看出四个通道的波形图显件都有二个Y轴,而且这二个Y轴随时都是同步的,这个是通过属性节点来实现的,将第一条Y轴的值写到第二条Y轴上来实现。
7,数据保存到数据库。
之前在常用VI资源区上传过数据写入到数据库的例子,这里的稍微有点不同,将四个通道的数据组成一个字符串(以空格间隔开)后一起写入到一个文本字段下,因为ACCESS的文本字段最长只能有255个字符,所以程序中以十个采样点保存一次,采样率也设置为10。
不知道OLE对象可不可以存储长字符串,如果是在MySQL中是可以保存为BLOB字段的,关于这些可以查找一下对应的资料,这里只是作个演示。
8,控件随窗格缩放程序中的“专利信息.vi”中有这个功能,但这个功能是要在某一个(只有一个)控件占界面绝大部分时才比较好用,然后设置这个控件随窗格缩放,其它控件不需要缩放,这时效果就比较好一点。
如果界面上有二个以上的表格,这个方法就不行了。
9,其它一些功能,比如菜单的禁用/启用、快捷键的实现(通过菜单)、在子程序中修改主界面上的控件值(通过“值”属性节点)等。
程序中的缺点:A,不管是模拟测试还是实际用数据采集卡设置,保存到数据库中时间信息都是不太准了,都是在写入数据库时才读取系统的时间作为数据采集的时间,如果要数据与时间严格保持一致,程序中也使用了发送采集时间的队列,可以从这个队列中读取采集的时间。
B,采集程序中将时间和数据分开二个队列来进行发送,可能不是很好,但也不知道有没有其它更好的方法了,原来也试过将四个通道的波形数据(带时间信息)通过一个队列发送的,但后面接收那里就比较麻烦,最终还是选择现在这样。
C,模拟采集时,如果采集一段时间后停止,不退出程序再次开始采集时,模拟采集的数据就会不准确,因为模拟采集时模拟波形的时间是以当前系统时间加上“初次调用?”来实现的,如果第二次运行时,初次调用输出F,则还是使用第一次运行时停止的时间,这个时间是不准的,解决办法是将“初次调用?”放到采集循环外面来判断是否需要重新对时,而不是放在采集程序里面。
D,好多VI中的说明信息都不够,没来得及写,看以后有没有空补上吧。
E,后来想到用“写一次读多次”的方法,即通过移位寄存器,或者叫功能VI来代替这个簇在各个VI之间传递的话,整个程序的后面板看起来应该会好很多,各个子VI的前面板也不会有很大的簇控件了。
有空
2023/3/4 0:54:48 1.07MB LabVIEW 多通道 数据采集
1
I2C通信模块时钟模块寄存器配置模块,代码有本人的详细正文,看一篇就懂,可以灵活修改
2023/2/22 19:44:52 387KB WM8731 I2C 配置
1
0-逻辑段分配.swf1-立即数寻址的功能.swf1-立即数寻址的执行.swf2-寄存器寻址的功能.swf2-寄存器寻址的执行.swf3-直接寻址的功能.swf3-直接寻址的执行.swf4-寄存器间接寻址的功能.swf4-寄存器间接寻址的执行.swf5-寄存器绝对寻址的功能.swf5-寄存器绝对寻址的执行.swf6-基址变址寻址的功能.swf6-基址变址寻址的执行.swf7-绝对基址变址寻址的功能.swf7-绝对基址变址寻址的执行.swf8-逻辑左移.swf9-串传送MOVSB.swf10-串传送MOVSW.swf11-REPMOVSB.swf
2023/2/21 1:56:03 587KB 寻址方式
1
ov5640自动对焦固件,初始化后需求向ov5640写入4KB的寄存器,寄存器的值根据电机驱动的不同而有所差异,有三种不同驱动所对应的寄存器值
2023/2/17 7:18:28 42KB ov5640
1
中低端领域的强势芯片内部资源,非官方发布,经过分析源代码对其官方发布的TRM寄存器手册做了修正,分享给大家
2023/2/16 5:26:36 6.25MB 人工智能 芯片 K210 寄存器手册
1
通过FPGA配置芯片,采样spi接口,对芯片寄存器配置。
芯片GPX2的verilog配置程序。
需求spi结果也可以参考本程序
2023/2/15 22:49:01 7KB GPX2 SPI verilog
1
stm32f103modbusrtu从站工程。
包括输出寄存器读取,保持寄存器读取设置,离散输出寄存器读取
2023/2/15 8:23:45 4.98MB modrtu从站 stm32f103
1
本资源为非常不错的一套王网传资源,是继之前上传的基础班的升级版,愈加全面,资源过大,上传乃是下载链接,如失效请留言!!!资源远大于5积分,不多说,下面直接上目录:APC机制I5J$i:U0f1r:O9B(Q"b│01APC的本质.mp4│02备用Apc队列.mp4:U8p7]3f"w$b0?5Z9`0H8G*[│03APC挂入过程.mp48g!H4s1V;]+b4Y9H0L-B│04内核APC执行过程.mp4│05用户APC执行过程.mp4│├─事件等待'x%`"J'}?&S:t']#I5\5G│01临界区.mp4-o(U$W9O+`~0u4~,@.\│02自旋锁.mp4)c3~.J&L,V&s.Q8x/[.w│03线程等待与唤醒.mp4#b*^"k$d#O3f8t8a3k│04WaitForSingleObject函数分析.mp4$V7L'C3I(W│05事件.mp4│06信号量.mp4│07互斥体.mp4│├─保护模式-}!n!C$O/s"Q│014中断门.mp4,B'i,r7Y:B3|!N(^6{l9F│015陷阱门.mp4│017任务段_下.mp4,|/M#A:K3T7i*Q/?I&o&D;p│018任务门.mp46m.D+f4_/V)~9S&B│01910-10-12分页.mp4│020PDE_PTE.mp4│021PDE_PTE属性(P_RW).mp43~/]1x5{4u:{$I│022PDE_PTE属性(US_PS_A_D).mp4│023页目录表基址.mp4│024页表基址.mp4$Af'[+g6}5F;e│0252-9-9-12分页.mp4│0262-9-9-12分页(下).mp4-~'~9i0T5f"p2U$j│027TLB.mp4│028中断与异常.mp4│029控制寄存器.mp46j2l3j)O#{%{4w│030PWT_PCD属性.mp4│031保护模式阶段测试.mp4│_001保护模式.mp4,I;c5X~)t1d1}8S#f3i:b│_002段寄存器结构.mp48n-|-i(H$^*f│_003段寄存器属性探测.mp4│_004段描述符与段选择子.mp4│_005段描述符属性_P位_G位.mp4│_006段描述符属性_S位_TYPE域.mp4│_007段描述符属性_DB位.mp4│_008段权限检查.mp4│_009代码跨段跳转流程.mp4&S#i9i-\0D"@1U-P│_010代码跨段跳转实验.mp4"@*S2Y-a-S6n7n:~│_011长调用与短调用.mp4│_012调用门_上.mp4;[)_2c8A5F%}!u%]:~.N│_013调用门_下.mp4│├─内存管理│01线性地址的管理.mp4;?|+^5i&}│02PrivateMemory.mp4*@3B(Y6^y-{│03MappedMemory.mp4│04物理内存的管理.mp4'[8C6q\1H8w"H2]0Y│05无处不在的缺页异常.mp4│├─句柄表│01句柄表.mp4│02全局句柄表.mp4│5h"u"i&{+G4T+E├─异常│01CPU异常记录.mp4│02模拟异常记录.mp4:K0J(d1
1
PIC16F151X和PIC16LF151X器件:高功能RISCCPU:•优化的C编译器架构•仅需学习49条指令•可寻址最大28KB的线性程序存储空间•可寻址最大1024字节的线性数据存储空间•工作速度:-DC–20MHz时钟输入(2.5V时)-DC–16MHz时钟输入(1.8V时)-DC–200ns指令周期•带有自动现场保护的中断功能•带有可选上溢/下溢复位的16级深硬件堆栈•直接、间接和相对寻址模式:-两个完全16位文件选择寄存器(FileSelectRegister,FSR)-FSR可以读取程序和数据存储器灵活的振荡器结构:•16MHz内部振荡器模块:-可通过软件选择频率范围:31kHz至16MHz•31kHz低功耗内部振荡器•外部振荡器模块具有:-4种晶振/谐振器模式,频率最高为20MHz-3种外部时钟模式,频率最高为20MHz•故障保护时钟监视器(Fail-SafeClockMonitor,FSCM)-当外设时钟停止时可使器件安全关闭•双速振荡器启动•振荡器起振定时器(OscillatorStart-upTimer,OST)模拟特性:•模数转换器(Analog-to-DigitalConverter,ADC):-10位分辨率-最多28路通道-自动采集功能-可在休眠模式下进行转换•参考电压模块:-具有1.024V、2.048V和4.096V输出的固定参考电压(FixedVoltageReference,FVR)•温度指示器采用nanoWattXLP的超低功耗管理PIC16LF151X:•休眠模式:20nA(1.8V时,典型值)•看门狗定时器:300nA(1.8V时,典型值)•辅助振荡器:600nA(32kHz时)单片机特性:•工作电压范围:-2.3V-5.5V(PIC16F151X)-1.8V-3.6V(PIC16LF151X)•可在软件控制下自编程•上电复位(Power-onReset,POR)•上电延时定时器(Power-upTimer,PWRT)•可编程低功耗欠压复位(Low-PowerBrown-OutReset,LPBOR)•扩展型看门狗定时器(WatchdogTimer,WDT)•通过两个引脚进行在线串行编程(In-CircuitSerialProgramming™,ICSP™)•通过两个引脚进行在线调试(In-CircuitDebug,ICD)•增强型低电压编程(Low-VoltageProgramming,LVP)•可编程代码保护•低功耗休眠模式•低功耗BOR(LPBOR)外设特点:•最多35个I/O引脚和1个仅用作输入的引脚:-高灌/拉电流:25mA/25mA-可单独编程的弱上拉-可单独编程的电平变化中断(Interrupt-On-Change,IOC)引脚•Timer0:带有8位预分频器的8位定时器/计数器•增强型Timer1:-带有预分频器的16位定时器/计数器-外部门控输入模式-低功耗32kHz辅助振荡器驱动器•Timer2:带有8位周期寄存器、预分频器和后分频器的8位定时器/计数器•两个捕捉/比较/PWM(Capture/Compare/PWM,CCP)模块:•带有SPI和I2CTM的主同步串行口(MasterSynchronousSerialPort,MSSP):-7位地址掩码-兼容SMBus/PMBusTM•增强型通用同步/异步收发器(EnhancedUniversalSynchronousAsynchronousReceiverTransmitter,EUSART)模块:-兼容RS-232、RS-485和LIN-自动波特率检测-接收到启动位时自动唤醒
2023/2/9 10:11:05 5.76MB PIC16F1516 PIC16F1517 PIC16F1518 PIC16F1519
1
主控芯片为STM32F103,经过SPI总线对电容传感器PCAP01寄存器的读写,设置传感器的刷新频率和精度等参数,然后将读取的电容数据经过485传输出去。
2023/2/9 9:47:58 2.61MB 电容传感器 PCAP01 SPI总线 485通信
1
共 419 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡