将十六进制数据发送到连接到卡片自动售货设备的串行端口

时间:2018-01-16 15:47:31

标签: c# php

如何使用C#或Php将十六进制(如0x2b或0x42)发送到串行端口。

42是我需要发送的HEX。

我用它来做C#

using System.IO.Ports;

namespace Card_Reader
{
public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
        using (SerialPort port = new SerialPort("COM2", 9600, Parity.None, 8))
        {
            byte[] bytesToSend = new byte[1] { 0x2A };

            port.Open();
            port.Write(bytesToSend, 0, 1);
        }

    }

但连接到我的串口的设备没有任何反应。

现在我用它来做Php

public function dispense_card() {
    $serial = new CI_Phpserial();

    // First we must specify the device. This works on both linux and windows (if
    // your linux serial device is /dev/ttyS0 for COM1, etc)
    $serial->deviceSet("COM2");

    // We can change the baud rate, parity, length, stop bits, flow control
    $serial->confBaudRate(9600);
    $serial->confParity("even");
    $serial->confCharacterLength(8);
    $serial->confStopBits(1);
    $serial->confFlowControl("none");

    // Then we need to open it
    $serial->deviceOpen();

    // To write into
    /*$serial->sendMessage(0x42);*/
    $str = pack("h*",66);
    $serial->sendMessage($str);
}

自从去年以来我一直试图这样做以后,我已经接近了自己,直到现在我无法完成它。

新手在串口数据发送方面。

0 个答案:

没有答案