スマート カード リーダーと通信するためのソフトウェアを設計する必要があります。
最初のステップとして、カードリーダーからデータを受信し、変更時にすぐに表示できるテキストボックスに表示したい(データが送信されたことを確認するため)..
カードリーダーから送信されたデータ(以前はPLCでプログラムしていた)は256バイトの配列です
私は同じアプローチを実行しましたが、リッチテキストボックスには何も表示されません..
私のコードを見て、何が悪いのか教えてください。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO.Ports;
using System.IO;
namespace mycard
{
public partial class Form1 : Form
{
byte[] memo = new byte[256];
byte[] buffer = new byte[255];
private SerialPort serialPort = new SerialPort();
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
serialPort.DataReceived +=
new SerialDataReceivedEventHandler(serialPort_DataReceived);
}
//open port
private void button1_Click(object sender, EventArgs e)
{
if (s1.IsOpen)
{
s1.Close();
}
s1.Open();
}
//Eject order which is working fine
private void button1_Click_1(object sender, EventArgs e)
{
byte[] data= new byte[4];
memo[0]=0x60;
memo[1]=0x00;
memo[2]=0x02;
memo[3]=0x43;
memo[4]=0x31; //32
memo[5]=0x10; //13
s1.Write(memo,0,6);
}
//close port
private void button2_Click(object sender, EventArgs e)
{
s1.Close();
}
private void button3_Click(object sender, EventArgs e)
{
txtDataReceived.Text = "\r\n";
}
public delegate void myDelegate();
public void updateTextBox()
{
byte[] buffer = new byte[255];
serialPort.Read(buffer, 0, 4);
txtDataReceived.Text = (buffer[0].ToString() + Environment.NewLine
+ buffer[1].ToString() + Environment.NewLine
+ buffer[2].ToString() + Environment.NewLine
+ buffer[3].ToString() + Environment.NewLine);
// i have tried the following code as well but i got nothing as well
// txtDataReceived.AppendText(serialPort.ReadExisting());
// txtDataReceived.ScrollToCaret();
}
}
}
私は以下のように作成されたリッチテキストボックスで次の出力を取得することを期待しています..メッセージ全体が表示され、バッファ配列の各バイトのxxx値がスマートカードリーダーの状態に応じて変更されますリーダーが送信します)...
たとえば(上記のコードで私がやろうとしていたこと)..接続があり、カードがカードリーダーに挿入されている間、バッファ[0]、[1]、[2]および[3]の値0 から 48,48,48,48 (カードリーダーによって送信される) に即座に変更する必要があります..など..
buffer:
[0]=xxx
[1]=xxx
[2]=xxx
[3]=xxx
[4]=xxx
[5]=xxx
[6]=xxx
...
...
...
[255]=xxx
代わりに、箱は空です...
私の問題を願っています。明確です..そして私は本当にここで解決策を見つけたいと思っています..それは私にとって非常に重要な問題です..そして私は成功せずに多くの時間を費やしました.
スマート カード リーダーのタイプ: KDM9650