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;
}
上記のメソッドは、行のrfidタグにデータを書き込みます
serialPort1.Write(writeByteArray, 0, writeByteArray.Length);
writeByteArrayは、 RFIDタグの制限を超えているデータのサイズです。上司は、データをascii
コードに変換してから、 RFIDに書き込むと言いました。
これは、この変換によってデータのサイズを減らすのに役立ちますか?
別のRFIDタグを使用せずに他の方法はありますか?