以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- API函数 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=124428) |
-- 作者:lxyjl -- 发布时间:2018/9/6 9:51:00 -- API函数 老师,好 我需要连接高频的读卡器,按照厂方给的VB的demo,将VB里的全局函数全部拷贝到foxtable里,但是设置波特率函数老是不过,请教! VB环境的全局函数代码: Public Type TagIds TagType As Byte AntNum As Byte Ids(11) As Byte End Type Public Declare Function CommOpen Lib "UHFApiV10.dll" (ByRef hCom As Long, ByVal com_port As String) As Integer Public Declare Function CommClose Lib "UHFApiV10.dll" (ByVal hCom As Long) As Integer Public Declare Function SetBaudRate Lib "UHFApiV10.dll" (ByVal hCom As Long, ByVal BaudRate As Integer, ByVal NetAddr As Byte) As Integer Public Declare Function ResetReader Lib "UHFApiV10.dll" (ByVal hCom As Long, ByVal NetAddr As Byte) As Integer Public Declare Function GetFirmwareVersion Lib "UHFApiV10.dll" (ByVal hCom As Long, ByRef major As Byte, ByRef minor As Byte, ByVal NetAddr As Byte) As Integer Public Declare Function ClearIDBuffer Lib "UHFApiV10.dll" (ByVal hCom As Long, ByVal iAddr As Byte) As Integer \' ISO18000-6B Tag Functions Public Declare Function IsoMultiTagIdentify Lib "UHFApiV10.dll" (ByVal hCom As Long, ByRef Count As Long, ByRef Value As TagIds, ByVal NetAddr As Byte) As Integer Public Declare Function IsoMultiTagRead Lib "UHFApiV10.dll" (ByVal hCom As Long, ByVal iAddr As Long, ByRef Count As Long, ByRef Value As TagIds, ByVal NetAddr As Byte) As Integer Public Declare Function IsoWriteTag Lib "UHFApiV10.dll" (ByVal hCom As Long, ByVal iAddr As Byte, ByVal Value As Byte, ByVal NetAddr As Byte) As Integer Public Declare Function IsoReadWithID Lib "UHFApiV10.dll" (ByVal hCom As Long, ByRef TagID As Long, ByVal iAddr As Long, ByRef AntNum As Long, ByRef Value As Long, ByVal NetAddr As Byte) As Integer Public Declare Function IsoWriteWithID Lib "UHFApiV10.dll" (ByVal hCom As Long, ByRef TagID As Long, ByVal iAddr As Long, ByVal Value As Byte, ByVal NetAddr As Byte) As Integer Public Declare Function IsoLockTag Lib "UHFApiV10.dll" (ByVal hCom As Long, ByVal iAddr As Byte, ByVal NetAddr As Byte) As Integer Public Declare Function IsoQueryLock Lib "UHFApiV10.dll" (ByVal hCom As Long, ByVal iAddr As Byte, ByRef status As Byte, ByVal NetAddr As Byte) As Integer Public Declare Function IsoBlockWrite Lib "UHFApiV10.dll" (ByVal hCom As Long, ByVal iAddr As Byte, ByVal Length As Byte, ByRef Value As Long, ByVal NetAddr As Byte) As Integer Public Declare Function IsoSigleTagRead Lib "UHFApiV10.dll" (ByVal hCom As Long, ByVal iAddr As Long, ByRef Value As Byte, ByVal NetAddr As Byte) As Integer \'EPC Class1 Gen2 Function Public Declare Function Gen2MultiTagIdentify Lib "UHFApiV10.dll" (ByVal hCom As Long, ByRef Count As Long, ByRef Value As TagIds, ByVal NetAddr As Byte) As Integer Public Declare Function Gen2WriteEPC Lib "UHFApiV10.dll" (ByVal hCom As Long, ByVal WordPtr As Byte, ByRef Value As Byte, ByVal NetAddr As Byte) As Integer Public Declare Function Gen2LockTag Lib "UHFApiV10.dll" (ByVal hCom As Long, ByVal MemBank As Byte, ByVal NetAddr As Byte) As Integer Public Declare Function Gen2KillTag Lib "UHFApiV10.dll" (ByVal hCom As Long, ByVal PassWord As Long, ByVal NetAddr As Byte) As Integer Public Declare Function Gen2InitEPC Lib "UHFApiV10.dll" (ByVal hCom As Long, ByVal WordCount As Byte, ByVal NetAddr As Byte) As Integer Public Declare Function Gen2Read Lib "UHFApiV10.dll" (ByVal hCom As Long, ByVal MemBank As Byte, ByVal WordPtr As Byte, ByVal wordcnt As Byte, ByRef Value As Byte, ByVal NetAddr As Byte) As Integer Public Declare Function Gen2Write Lib "UHFApiV10.dll" (ByVal hCom As Long, ByVal MemBank As Byte, ByVal WordPtr As Byte, ByVal Value As Long, ByVal NetAddr As Byte) As Integer Public flagTag As Long Public bButton2 As Boolean Public hCom As Long Public Timeflag As Long Public TimeCount As Integer 打开串口成功 Dim result As Integer = CommOpen(hCom, "com4") MessageBox.Show(hcom) If hcom > 0 Then e.Form.Controls("Label1").text = "打开串口成功" Else e.Form.Controls("Label1").text = "打开串口不成功" End If 关闭串口也是成功的 Dim result As Integer = CommClose(hCom) MessageBox.Show(hcom) If result = 0 Then e.Form.Controls("Label1").text = "关闭串口成功" Else e.Form.Controls("Label1").text = "关闭串口不成功" End If 设置波特率就是不过 Dim temp1 As Integer = SetBaudRate(hCom, 0, 255) MessageBox.Show(hcom) MessageBox.Show(temp1) If temp1 = 0 Then e.Form.Controls("Label1").text = "设置波特率口成功" Else e.Form.Controls("Label1").text = "设置波特率口不成功" End If 请问哪里出问题了? |
-- 作者:有点甜 -- 发布时间:2018/9/6 10:00:00 --
厂家给你的vb.net的实例和c#的实例,发上来看看。
|
-- 作者:有点甜 -- 发布时间:2018/9/6 10:01:00 -- 或者贴出人家实例里面的完整代码。 |
-- 作者:lxyjl -- 发布时间:2018/9/6 11:05:00 -- 这是厂家VB实例 |
-- 作者:狐狸爸爸 -- 发布时间:2018/9/6 11:09:00 -- Api申明中的: As Long 改为: As Integer
|
-- 作者:lxyjl -- 发布时间:2018/9/6 13:22:00 -- 改完了,设置波特率过了,谢谢老师 |