1
11111
Unregistered / Unconfirmed
GUEST, unregistred user!
之前从来没有接触过串口通讯,上周接到一个项目偏偏是串口的。
我在论坛里找了很多资料,装了SPCOMM,可还是实现不了读取串口设备。
1、串口设备为一个“数据采集器F-20”,里面存储了几十条内码,通过串口与
PC连接将内码读取到数据库中。现在要做的就写一个数据库程序将这些数据读取
、处理、生成报表。问题就是读取这一块。自己做了一周了,时间将尽,向大家求援。
2、下面是仅有的技术资料,串口通讯协议。
=============================================================================
手机的详细通讯数据如下:
F16A/F16B F18/F18M F20/F20M
通讯协议 9600, N, 8, 1 9600, N, 8, 1 115200, N, 8, 1
Command 10进制 10进制 10进制
年 0~99:1996~2095 0~99:1996~2095 0~99:1996~2095
月 1~12 1~12 1~12
日 1~31 1~31 1~31
时 0~23 0~23 0~23
分 0~59 0~59 0~59
秒 0~59 0~59 0~59
卡片内码 16进制 16进制 16进制
F18(M)使用128KBytes 的内存,
F20(M) 使用256KBytes 的内存,前128K为F18所用,后128K为F20所用。
全部区分为1024 Bank,每一Bank为256 Bytes ,F20的数据存放在最后512~1023 Bank。
每一笔传输数据:Bank(2 bytes) + Data(256 bytes)+ Checksum (1 byte),共259 bytes。
Data所代表格式如下:
年 + 月 + 日 + 时 + 分 + 秒 + 表号 + “#” + 表值 + &HEF(0xEF) + … …
每一笔抄表记录数据为:
年 + 月 + 日 + 时 + 分 + 秒 + 表号 + “#” + 表值 + &HEF(0xEF),
表号最长8Byte,表值最长16Byte。
因为表号及表值无一定长度限制,所以读取F20的抄表记录时要特别注意以下事项:
1、PC要将所有资料都取回重整合并后再根据以上规则(每一笔抄表记录数据)处理。
2、表号最长8Bytes,表值最长16Bytes,超出部分需舍去。
3、年、月、日、时、分、秒为BCD,各为1Byte(参考上表)。
4、抄表记录、区隔数据为文字符串,最长为32Bytes(含年、月、日、时、分、秒)。
================================================================================
3、现在我用的是DELPHI6.0+SPCOMM来读取。那位朋友做过这方面的开发,请提出宝贵建议或代码。
不胜感激。
我在论坛里找了很多资料,装了SPCOMM,可还是实现不了读取串口设备。
1、串口设备为一个“数据采集器F-20”,里面存储了几十条内码,通过串口与
PC连接将内码读取到数据库中。现在要做的就写一个数据库程序将这些数据读取
、处理、生成报表。问题就是读取这一块。自己做了一周了,时间将尽,向大家求援。
2、下面是仅有的技术资料,串口通讯协议。
=============================================================================
手机的详细通讯数据如下:
F16A/F16B F18/F18M F20/F20M
通讯协议 9600, N, 8, 1 9600, N, 8, 1 115200, N, 8, 1
Command 10进制 10进制 10进制
年 0~99:1996~2095 0~99:1996~2095 0~99:1996~2095
月 1~12 1~12 1~12
日 1~31 1~31 1~31
时 0~23 0~23 0~23
分 0~59 0~59 0~59
秒 0~59 0~59 0~59
卡片内码 16进制 16进制 16进制
F18(M)使用128KBytes 的内存,
F20(M) 使用256KBytes 的内存,前128K为F18所用,后128K为F20所用。
全部区分为1024 Bank,每一Bank为256 Bytes ,F20的数据存放在最后512~1023 Bank。
每一笔传输数据:Bank(2 bytes) + Data(256 bytes)+ Checksum (1 byte),共259 bytes。
Data所代表格式如下:
年 + 月 + 日 + 时 + 分 + 秒 + 表号 + “#” + 表值 + &HEF(0xEF) + … …
每一笔抄表记录数据为:
年 + 月 + 日 + 时 + 分 + 秒 + 表号 + “#” + 表值 + &HEF(0xEF),
表号最长8Byte,表值最长16Byte。
因为表号及表值无一定长度限制,所以读取F20的抄表记录时要特别注意以下事项:
1、PC要将所有资料都取回重整合并后再根据以上规则(每一笔抄表记录数据)处理。
2、表号最长8Bytes,表值最长16Bytes,超出部分需舍去。
3、年、月、日、时、分、秒为BCD,各为1Byte(参考上表)。
4、抄表记录、区隔数据为文字符串,最长为32Bytes(含年、月、日、时、分、秒)。
================================================================================
3、现在我用的是DELPHI6.0+SPCOMM来读取。那位朋友做过这方面的开发,请提出宝贵建议或代码。
不胜感激。