与考勤仪的串口通讯.(200分)

  • 主题发起人 ccweifen
  • 开始时间
C

ccweifen

Unregistered / Unconfirmed
GUEST, unregistred user!
最近要写一个与考勤仪通讯的程序,硬件厂方提供以下资料:


上下位通讯语句均采用以下统一的格式传递指令:

呼叫 + 类型 + 机号 + 内容 + 校验 + 结束码

---- 上位呼叫码: 00H + 00H + 00H + 00H + 5fH + 5fH
---- 下位呼叫码: 00H + 00H + 00H + 00H + 6fH + 6fH + 99H (版本号)
---- 机号: 1 byte (有效值 1 ~ 255)
---- 内容: 长度 + 数据段
(长度: 2 byte, 16进制, 高位在前, 低位在后,表示整个内容的长度)
---- 校验: 类型+机号+内容累加和(1 byte, 8位)
---- 上位结束码: 8fH + 8fH
---- 下位结束码: 9fH + 9fH
---- 以上指令中只有内容部分可缺省

类型:
1.考勤仪检测
上位类型: 50H + 50H ( + 机号 + 校验 )
下位应答: 60H + 60H ( + 机号 + 校验, 表示听到呼叫)

2.写管理员密码(考勤仪上的密码)
上位类型: 5bH + 5bH ( + 机号 + 密码内容 + 校验 )
下位应答: 6bH + 6bH ( + 机号 + 校验)

****
密码内容 = (00,06) + 密码(4 byte, 8位数)

3.读考勤仪内登录数据
上位请求类型: 5cH + 5cH ( + 机号 + 校验 )
下位发送类型: 6cH + 6cH ( + 机号 + 数据内容1 + 校验)
上位确认收到: 5dH + 5dH ( + 机号 + 数据内容2 + 校验)
下位确认清除: 6dH + 6dH ( + 机号 + 校验 )

****
数据内容1 = (全长) + 若干个数据记录 (10个记录每次)
10*X+2
数据记录 = X * (卡号 + 年 + 月 + 日 + 小时 + 分钟+状态)
4byte 1byte 1byte 1byte 1byte 1byte 1byte

数据内容2 = (00,04)+ X(2byte,16进制,高位在前,低位在后)


与硬件没打过交道,不知该如何下手,请高手指点迷津.
如果有类似或相近的程序最好(如果合适再加300)
 
C

ccweifen

Unregistered / Unconfirmed
GUEST, unregistred user!
没人写过与硬件的串口通讯吗??!!
 
E

eyes4

Unregistered / Unconfirmed
GUEST, unregistred user!
简单的话用个串口通讯的控件解决,要的话给个mail地址。

编程思路是逐个从串口读字节,读到结束符时将先前读到的写入到一变量中,
然后再根据厂方提供的资料分析之即可,应该没什么难度。
 

左世洪

Unregistered / Unconfirmed
GUEST, unregistred user!
C

ccweifen

Unregistered / Unconfirmed
GUEST, unregistred user!
我用SPCOMM写过,可什么了没收到.
MAIL: ccweifen@263.net
 
C

ccweifen

Unregistered / Unconfirmed
GUEST, unregistred user!
把问题提前!
 
W

wjc2k

Unregistered / Unconfirmed
GUEST, unregistred user!
我是用TComport写的,我用的考勤仪没你的这么复杂,只需要发送简单的命令就可以了。
比如发个i表示是初始化,好像也不难。
 
G

guy02

Unregistered / Unconfirmed
GUEST, unregistred user!
可以试一下我的构件,是从SPComm改造的,
我用来做程控交换机的计费的,接收二进制数据没问题。
 
C

ccweifen

Unregistered / Unconfirmed
GUEST, unregistred user!
to guy02: 能把它发给我吗?

ccweifen@263.net
 
C

ccweifen

Unregistered / Unconfirmed
GUEST, unregistred user!
再次把问题提前!
 
G

guy02

Unregistered / Unconfirmed
GUEST, unregistred user!
没收到我发给你的email,还是不好用?
 
I

iie

Unregistered / Unconfirmed
GUEST, unregistred user!
建议你先用超级终端调试一下,我自己写过一个串口大师,需要的话可以mail给你
 

莫知

Unregistered / Unconfirmed
GUEST, unregistred user!
to guy02: 能把你做的构件发给我吗? zhouqing99@163.net
 
Z

zht

Unregistered / Unconfirmed
GUEST, unregistred user!
我以前写过一个,是用的Api,我现在手头没有,等找到,我给你贴出来,或发给你
 
S

sanming

Unregistered / Unconfirmed
GUEST, unregistred user!
to guy02: 能否把你做的那个构件发一份给我?hzj_mail@21cn.com
 
C

ccweifen

Unregistered / Unconfirmed
GUEST, unregistred user!
这几天很忙,没空试,过几天再给分吧。
 

吴向球

Unregistered / Unconfirmed
GUEST, unregistred user!
to guy02: 能否把你做的那个构件发一份给我?wxq135_1@sina.com
 
M

maming

Unregistered / Unconfirmed
GUEST, unregistred user!
是用asm??
 
J

jz_wq

Unregistered / Unconfirmed
GUEST, unregistred user!
to guy02 请把你做的那个串口构件发一份给我。 jz_wq@163.net
 

Similar threads

I
回复
0
查看
581
import
I
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
顶部