У вас есть проблемы со считывателем смарт-карт. Считыватель подключается к ПК через преобразователь Usb-to-Serial. Не читает ничего читателя.C# смарт-карты последовательный интерфейс
...
static void Main(string[] args)
{
byte[] data = new byte[256];
byte[] recived = new byte[256];
data[0] = 0x00;
data[1] = 0xA4;
data[2] = 0x04;
data[3] = 0x00;
data[4] = 0x00;
data[5] = 0x00;
data[6] = 0x00;
System.IO.Ports.SerialPort sp = new System.IO.Ports.SerialPort("COM4", 38400, System.IO.Ports.Parity.None, 8, System.IO.Ports.StopBits.One);
sp.WriteTimeout = 300;
sp.ReadTimeout = 300;
sp.DataReceived += Sp_DataReceived;
sp.ErrorReceived += Sp_ErrorReceived;
if (sp.IsOpen)
{sp.Close();}
sp.Open();
try {
sp.Write(data, 0, 7);
int bt = sp.ReceivedBytesThreshold;
sp.Read(recived, 0, bt);
if (bt != 0)
{ Console.WriteLine(bt.ToString());
Console.ReadKey();}
} catch (Exception ex){
Console.WriteLine(ex.Message);
Console.ReadKey();}
}
private static void Sp_ErrorReceived(object sender, System.IO.Ports.SerialErrorReceivedEventArgs e)
{Console.ReadKey();}
private static void Sp_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
{Console.ReadKey();}
}
}
код ничего не делает, как будто не для чтения карт в системе.
Представьте, что вы были одним из нас. Могли бы вы предложить поддержку по этому вопросу? Какую информацию вам не хватало? –
'sp.DataReceived + = Sp_PinChanged', похоже, не определен. Извините, но код должен, по крайней мере, скомпилировать, -1 для этого. –
Сначала в последовательных портах диспетчера устройств проверьте, обнаружен ли ваш считыватель карт смарт-карт вашим компьютером. Вы уверены, что это в порту com4? Есть ли исключения? что происходит после выполнения кода на sp.Write ??? –