Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.IO.Ports;
- using System.Windows.Forms;
- using System.Threading;
- namespace ConsoleApplication1
- {
- class Program
- {
- static void Main(string[] args)
- {}
- public sealed class Init
- {
- public static SerialPort mySerialPort = new SerialPort();
- public static string seriya = "";
- public static string nomer = "";
- public static string karta = "";
- public static string karta16;
- public void PortProperties()
- {
- if (mySerialPort.IsOpen == false)
- {
- mySerialPort.BaudRate = 9600;
- mySerialPort.Parity = Parity.None;
- mySerialPort.StopBits = StopBits.One;
- mySerialPort.DataBits = 8;
- mySerialPort.Handshake = Handshake.None;
- mySerialPort.ReadTimeout = 200;
- mySerialPort.PortName = "COM2";
- try
- {
- mySerialPort.Open();
- }
- catch (System.IO.IOException)
- {
- //throw new Exception("Устройство не подключено");
- }
- Thread t = new Thread(Opros);
- t.Start();
- t.IsBackground = true;
- mySerialPort.DataReceived += new SerialDataReceivedEventHandler(mySerialPort_DataReceived);
- OnPick += OnPicked;
- }
- }
- static void Opros()
- {
- var data_for_controller1 = new byte[5] { 242, 255, 1, 2, 3 };
- var data_for_controller = new byte[7] { 242, 255, 3, 1, 0, 26, 24 };
- if (mySerialPort.IsOpen)
- mySerialPort.Write(data_for_controller, 0, 7);
- while (mySerialPort.IsOpen)
- {
- try
- {
- mySerialPort.Write(data_for_controller1, 0, 5);
- }
- catch(System.IO.IOException)
- {}
- }
- }
- public static void mySerialPort_DataReceived(object sender, SerialDataReceivedEventArgs e)
- {
- byte[] buffer = new byte[mySerialPort.BytesToRead];
- mySerialPort.Read(buffer, 0, buffer.Length);
- for (int i = 2; i < buffer.Length; i = i + 8)
- {
- if (buffer[i] == 8)
- {
- int nomk = (buffer[i + 5] >> 1) + (buffer[i + 6] & 1) * 128;
- int ss = (buffer[i + 6] >> 1) + (buffer[i + 7] & 1) * 128;
- nomk = nomk + ss * 256;
- int serk = (buffer[i + 7] >> 1) + (buffer[i + 8] & 1) * 128;
- karta = serk.ToString() + nomk.ToString();
- karta16 = buffer[i + 5].ToString() + buffer[i + 6].ToString() + buffer[i + 7].ToString() + buffer[i + 8].ToString();
- seriya = serk.ToString();
- nomer = nomk.ToString();
- Thread.Sleep(200);
- OnRaiseCustomEvent(new EventArgs());
- }
- }
- if (mySerialPort.IsOpen)
- {
- mySerialPort.DiscardOutBuffer();
- }
- }
- public static event EventHandler<EventArgs> OnPick;
- public static void OnRaiseCustomEvent(EventArgs e)
- {
- EventHandler<EventArgs> handler = OnPick;
- if (handler != null)
- {
- handler(null, e);
- }
- }
- void OnPicked(object sender, EventArgs e)
- {
- for (int i = 0; i < 10; i++)
- {
- SendKeys.SendWait("{BS}");
- }
- SendKeys.SendWait(seriya + " " + nomer);
- }
- }
- }
- }
- // perko reader .net c#
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement