我遇到一个问题,我有一个VB程序的完整源代码,它以字节格式向RFID阅读器发送信号。现在我想将该程序转换为基于Web的系统。现在的问题是我不知道如何将VB Byte转换为php格式。有没有这方面的功能?
这是我目前的VB代码,它以字节格式向RFID阅读器发送命令:
Private Sub Send_cmd()
Dim Data() As Byte = {&H2, &H5, &H12, &HE6, &HA3}
Dim i As Integer = 0
Do While i < 5
SerialPort1.Write(Data, 0, Data.Length)
i = i + 1
Loop
End Sub
这是我们尝试执行的当前php代码:
$bbserialport = dio_open($portname, O_RDWR);
$data = "00000010 00000010 00000010 00000010 00000010 ";
$bytesent = dio_write($bbserialport, $data);
echoFlush("$data");
echoFlush("$bytesent");
答案 0 :(得分:0)
我不确定PHP
但是您的VB HEX值与您的PHP二进制值
不同您要发送5次SAME字节数据
你发送&amp; H2 5次 - 你应该发送....
00000010 00000101 00010010 11100110 10100011
&amp; H2是00000010
&amp; H5是00000101
&amp; H12是00010010
&amp; HE6是11100110
&amp; HA3是10100011
答案 1 :(得分:0)
根据文档,dio_write()
期望$data
为a string,因此您只需使用ad-hoc字符串并使用\xhh
escape sequence作为$data = "\x02\x05\x12\xE6\xA3";
dio_write($bbserialport, $data);
如下:
$data=array(0x02, 0x05, 0x12, 0xE6, 0xA3);
foreach($data as $byte){
dio_write(chr($byte));
}
但是,您也可以使用字节数组:
VOL C: