RFIDを利用した登録システムのようなプロジェクトがあります。ユーザーが登録モードを有効にした場合、表示される各カードは一度だけ保存する必要があります。このために、配列を使用してから、配列内の同じコードをチェックして、それが既に存在するかどうかを確認しています。しかし、配列インデックスのインクリメントに問題があります。
クラスForm1では、初期化があります:
string rx_data = "";
string last_data = "";
string[] availablePlayers = {""};
int plIndex = 0;
以下のコードでは、 を使用するplIndex
と、最初のカードのみを受け取り、このハンドラーの呼び出しを停止するように見えます。
public void WriteRxData(object sender, SerialDataReceivedEventArgs e)
{
if (connection.IsOpen && !cardSaveCon.IsOpen)
{
try
{
rx_data = connection.ReadLine(); // check how the data ends
if (!availablePlayers.Any(rx_data.Contains))
{
availablePlayers[plIndex] = rx_data;
receivedData.AppendText(rx_data);
plIndex++;
}
}
catch (Exception err)
{
connection.Close();
}
}
しかし、代わりに、ハードコードされたインデックス値を使用すると機能します。これは他の言語でも機能する必要があるため、これを処理する方法を知りたいです。私はC#が初めてなので、欠けている部分があるかもしれません。