PHP向串口发送十六进制码流的方法

    在PHP中,在与串口进行通信时,一般发送的是十六进制。

    在明确知道发送的十六进制命令时,我们可以使用以下方式发送:

// 向串口发送读取指令
$cmd = "\x01\x03\x00\x00\x00\x01\x84\x0A";
$connection->send($cmd);

    然而,如果命令内容不确定时,我们需要动态的拼接命令内容字符串。此时,拼接完成后,需要将字符串转换为16进制来发送,可以使用以下方法转换。

    字符串转16进制字符串:

/**
 * 字符串转16进制字符串
 * 传入字符串格式:001624180101
 */
function str2hex($string)
{
    $str = '';
    for ($i = 0; $i < strlen($string); $i += 2) {
        $str .= chr(hexdec(substr($string, $i, 2)));
    }
    return $str;
}

     转换完成后,将转换后的十六进制字符串发送到串口即可    

// 转换16进制字符命令并发送
$cmd = str2hex($cmd_str);
$connection->send($cmd);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值