C# 写入rfid

C# 写入rfid,c#,C#,writeByteArray是超出RFID标签限制的数据大小,我的老板说将其转换为ascii码,然后写入RFID 这种转换是否有助于减少数据的大小 如果不使用不同的RFID标签,还有其他方法吗?你的老板说要转换成ASCII,因为设备每字节读取信息。我使用这些设备,这是它们读取传递给它们的数据流的通常方式 在这方面没有任何分配好处,因为数据的大小保持不变,改变的是信息的重新表示。也就是说。你们的老板说要转换成ASCII,因为这个设备每字节读取信息一个字节。我使用这些设备,这是它们读取传递给它们的数

writeByteArray是超出RFID标签限制的数据大小,我的老板说将其转换为ascii码,然后写入RFID

这种转换是否有助于减少数据的大小


如果不使用不同的RFID标签,还有其他方法吗?

你的老板说要转换成ASCII,因为设备每字节读取信息。我使用这些设备,这是它们读取传递给它们的数据流的通常方式


在这方面没有任何分配好处,因为数据的大小保持不变,改变的是信息的重新表示。也就是说。

你们的老板说要转换成ASCII,因为这个设备每字节读取信息一个字节。我使用这些设备,这是它们读取传递给它们的数据流的通常方式


在这方面没有任何分配好处,因为数据的大小保持不变,改变的是信息的重新表示。也就是说。

限制是标签可以存储的数据量,而不是用于与RFID控制器通信的协议。这是一个很难的设计限制,除了扔掉所有的标签,换一种不同的标签,你无法改变它。你必须找到一种更聪明的方法将信息编码成可用的比特,就像用一个字节对两个数字进行编码一样。@HansPassant是的,我正试图寻找更聪明的方法,但现在我找不到一个。……改变rfid的类型是一种选择,但它会增加项目的成本限制是标签可以存储的数据量,而不是你用来与rfid控制器对话的协议。这是一个很难的设计限制,除了扔掉所有的标签,换一种不同的标签,你无法改变它。你必须找到一种更聪明的方法将信息编码成可用的位,比如用一个字节来编码两个数字。@HansPassant是的,我正试图寻找一种更聪明的方法,但现在我找不到一种。……改变rfid的类型是一种选择,但它会增加项目的成本
    public void writeToCard2(string sourceText, string cardType)
    {
        Cursor.Current = Cursors.WaitCursor;

        int itemLength = sourceText.Split(',').Length;
        sourceText = itemLength.ToString() + "," + sourceText + ",";
        byte[] dataByteArray = Encoding.GetEncoding(932).GetBytes(sourceText);
        //textBox2.Text = BitConverter.ToString(dataByteArray);

        int dataByteLength = dataByteArray.Length;
        int writeLength = dataByteLength + 11;
        byte[] writeByteArray = new byte[writeLength];

        writeByteArray[0] = 0x02;//STX
        writeByteArray[1] = 0x00;//アドレス
        writeByteArray[2] = 0x78;//コマンド
        writeByteArray[3] = Convert.ToByte(dataByteLength + 4);//データ長
        writeByteArray[4] = 0xa1;//詳細コマンド
        writeByteArray[5] = 0x00;//書き込み開始ブロック番号
        writeByteArray[6] = Convert.ToByte(dataByteLength);//書き込みバイト数
        for (int i = 0; i < dataByteLength; i++)
        {
            writeByteArray[i + 7] = dataByteArray[i];//書き込みデータ
        }
        writeByteArray[dataByteLength + 7] = 0x40;//オプションフラグ
        writeByteArray[dataByteLength + 8] = 0x03;//ETX
        byte sum = 0x00;
        for (int i = 0; i <= dataByteLength + 8; i++)
        {
            sum += writeByteArray[i];
        }
        writeByteArray[dataByteLength + 9] = sum;//SUM値
        writeByteArray[dataByteLength + 10] = 0x0d;//CR

        //string tempStr = BitConverter.ToString(writeByteArray);

        //port.Write(writeByteArray, 0, writeByteArray.Length);
        serialPort1.Write(writeByteArray, 0, writeByteArray.Length);

        writeCardType = cardType;

        Cursor.Current = Cursors.Default;
    }
serialPort1.Write(writeByteArray, 0, writeByteArray.Length);