我的github:codetoys,所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。
这些代码大部分以Linux为目标但部分代码是纯C++的,可以在任何平台上使用。
这个虚拟电表测试程序是网上找来的,首先对作者表达抱歉和感谢。
这个程序只支持4个COM口(COM1-4),超过4的怎么办呢?下面是解决方案。
程序打开是这样的(如果不是你就不用往下看了)
仅支持4个COM口
我自己接的485转USB是COM3,但是虚拟串口对是COM8和COM9,这就超出了程序支持的范围,怎么办呢?其实很简单,直接修改配置文件就可以了。
如何修改
这个程序所在目录下面有个文件645MeterV2.7.1.INI:
[串口对话框]
串口号=0
速率选择=3
奇偶校验=2
数据位=0
停止位=0
帧间延时=100
响应延时=10000
[命令帧信息]
电表数量=1
通信表号1=000000000001
抄读表号1=
[系统]
测试类型=4
串口号=8 ====================注意:改这个就可以了
串口配置=1200,e,8,1
通道芯片=1
[电表]
表号=010203040506
表号0=010203040506
表号1=000010800448
表号2=002014000001
表号3=310701086772
表号4=310701088793
表号5=310701088789
表号6=310701089423
表号7=310701087037
表号使能1=1
表号使能2=0
表号使能3=0
表号使能4=0
表号使能5=0
表号使能6=0
表号使能7=0
表号使能8=0
编程使能=1
密码=666666
电表脉冲常数=3
电表类型=1
[电网输入]
A 相电流选择=3
A 相电压选择=2
A 相角度选择=3
B 相电流选择=9
B 相电压选择=2
B 相角度选择=1
C 相电流选择=10
C 相电压选择=3
C 相角度选择=3
[数据输入对话框]
电能(kWh)=000001.01
[数据选项]
最大费率=4
找到[系统]节,修改"串口号"就可以了,保存之后打开程序,直接连接就显示为修改后的串口号了。
实测一切正常。
题外话
身为程序员,很容易猜到作者的写法:配置一个数字,代码里面加上"COM"前缀就可以了。不过这一点并非防止四海皆准,Unix/Linux上是"/dev/前缀+序号",前缀大部分是"S",但是这不是规定,比如还有用"SE"的。所以具体序号如何变成串口名称还是需要适配的,图省力可以直接填完整字符串,当然,只有内部使用适合这样做。
(这里是结束)