将Visual Basics Byte转换为PHP格式

时间:2015-06-05 00:48:33

标签: php vb.net

我遇到一个问题,我有一个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");

2 个答案:

答案 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()期望$dataa 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: