//909522736 private void button3_Click(object sender, System.EventArgs e) { if (ser == null || !ser.IsOpen) { SystemSounds.Exclamation.Play(); this.BeginInvoke((Action)(() => { TextOut.AppendText("[" + DateTime.Now.ToLongTimeString() + "]: "); TextOut.AppendText("Соеденинение нельзя разорвать т.к. оно ещё не было установлено\n"); TextOut.ScrollToCaret(); })); } else { Autorized = false; ser.Close(); ser.Dispose(); ser = null; this.BeginInvoke((Action)(() => { TextOut.AppendText("[" + DateTime.Now.ToLongTimeString() + "]: "); TextOut.AppendText("Соеденинение разорвано.\n"); TextOut.ScrollToCaret(); })); } }
private void TextTimerCallback(object state) { if (_appendTextQueue.Count > 0) { lock (_appendTextQueue) { if (_appendTextQueue.Count > 0) { Dispatcher.Invoke(DispatcherPriority.Normal, (SendOrPostCallback) delegate { do { var el = _appendTextQueue.Dequeue(); TextOut.AppendText((string)el); } while (_appendTextQueue.Count > 0); TextOut.ScrollToEnd(); }, null); } } } else { TimerOff(); } }
private void OutPut(List <Movie> final) { int i = 1; foreach (Movie m in final) { TextOut.AppendText(i++ + ".\n"); TextOut.AppendText("Genre: " + m.Genre + "\n"); TextOut.AppendText("Studio: " + m.Studio + "\n"); TextOut.AppendText("Name: " + m.Name + "\n"); TextOut.AppendText("Year: " + m.Year + "\n"); TextOut.AppendText("Time: " + m.Time + "\n"); TextOut.AppendText("---------------------------------------------------\n"); } }
public void dataRecived(object sender, SerialDataReceivedEventArgs e) { if (!Autorized) { byte[] data = new byte[ser.BytesToRead]; ser.Read(data, 0, ser.BytesToRead); if (data.Length == 4 && data[0] == 0xff && data[1] == 0x00 && data[2] == 0xf0 && data[3] == 0x0f) { Autorized = true; this.BeginInvoke((Action)(() => { TextOut.AppendText("[" + DateTime.Now.ToLongTimeString() + "]: "); TextOut.AppendText("Соеденинение установлено\n"); ser.Write(new byte[] { CMD_ABOUT }, 0, 1); Thread.Sleep(1000); sendComand(0x33); })); } else { this.BeginInvoke((Action)(() => { TextOut.AppendText("[" + DateTime.Now.ToLongTimeString() + "]: "); TextOut.AppendText("Соеденинение установить не удалось\n"); TextOut.ScrollToCaret(); })); } } else { int code = ser.ReadByte(); switch (code) { case ANS_STR: string text = ser.ReadLine(); this.BeginInvoke((Action)(() => { TextOut.AppendText("[" + DateTime.Now.ToLongTimeString() + "] ФН: "); TextOut.AppendText(text); TextOut.ScrollToCaret(); })); break; case ANS_BTS: while (ser.BytesToRead == 0) { ; } int len = ser.ReadByte(); buffer = new byte[len]; for (int i = 0; i < len; i++) { while (ser.BytesToRead == 0) { ; } buffer[i] = (byte)ser.ReadByte(); } this.BeginInvoke((Action)(() => { TextOut.AppendText("[" + DateTime.Now.ToLongTimeString() + "]: длинна полученого сообщения: " + len.ToString() + "\n"); TextOut.AppendText("".PadLeft(120, '-') + "\n"); })); handleBufferData(); break; } } }
void handleBufferData() { if (buffer != null && buffer.Length > 5 && buffer[3] == 0) { string txt = ""; switch (sended_command) { case 0x33: if (buffer.Length != 23) { txt = incorrectMessege(); } else { txt = "Версия ФН: "; txt += btToString(buffer, 4, 16); if (buffer[20] == 0) { txt += "\n[" + DateTime.Now.ToLongTimeString() + "]: " + "Это версия для отладки\n"; } else { txt += "\n[" + DateTime.Now.ToLongTimeString() + "]: " + "Это серийная модель\n"; } } break; case 0x30: if (buffer.Length != 36) { txt = incorrectMessege(); } else { txt = "Состояние фазы жизни: " + Convert.ToString(buffer[4], 2).PadLeft(4, '0'); txt += "\n[" + DateTime.Now.ToLongTimeString() + "]: Текущий документ: 0x" + buffer[5].ToString("X2"); txt += "\n[" + DateTime.Now.ToLongTimeString() + "]: Данные документа: " + buffer[6]; txt += "\n[" + DateTime.Now.ToLongTimeString() + "]: Состояние смены: " + Convert.ToString(buffer[7], 2).PadLeft(4, '0'); txt += "\n[" + DateTime.Now.ToLongTimeString() + "]: Флаги предупреждения: " + Convert.ToString(buffer[8], 2).PadLeft(4, '0');; txt += "\n[" + DateTime.Now.ToLongTimeString() + "]: Время последнего документа: "; txt += buffer[11] + "/" + buffer[10] + "/" + buffer[9] + " " + buffer[12] + ":" + buffer[13]; txt += "\n[" + DateTime.Now.ToLongTimeString() + "]: Номер ФН: " + btToString(buffer, 14, 16); txt += "\n[" + DateTime.Now.ToLongTimeString() + "]: Номер последнего ФД: 0x" + buffer[30].ToString("X2") + buffer[31].ToString("X2") + buffer[32].ToString("X2") + buffer[33].ToString("X2"); txt += "\n"; } break; case 0x31: if (buffer.Length != 22) { txt = incorrectMessege(); } else { txt += "Номер ФН: " + btToString(buffer, 4, 16); txt += "\n"; } break; case 0x40: txt = incorrectMessege(); break; case 0x43: if (buffer.Length != 69) { txt = incorrectMessege(); } else { txt = "Дата: " + buffer[6] + "/" + buffer[5] + "/" + buffer[4] + " " + buffer[7] + ":" + buffer[8]; txt += "\n[" + DateTime.Now.ToLongTimeString() + "]: ИНН" + btToString(buffer, 9, 12); txt += "\n[" + DateTime.Now.ToLongTimeString() + "]: Номер КТТ" + btToString(buffer, 21, 20); txt += "\n[" + DateTime.Now.ToLongTimeString() + "]: Номер ФН" + btToString(buffer, 41, 16); txt += "\n[" + DateTime.Now.ToLongTimeString() + "]: Код налогообложения" + buffer[57].ToString(); txt += "\n[" + DateTime.Now.ToLongTimeString() + "]: Режим работы" + buffer[58].ToString(); txt += "\n[" + DateTime.Now.ToLongTimeString() + "]: Номер ФД" + (((ulong)buffer[59] << 24) | ((ulong)buffer[60] << 16) | ((ulong)buffer[61] << 8) | ((ulong)buffer[62])).ToString(); txt += "\n[" + DateTime.Now.ToLongTimeString() + "]: Фискальный Признак" + (((ulong)buffer[63] << 24) | ((ulong)buffer[64] << 16) | ((ulong)buffer[65] << 8) | ((ulong)buffer[66])).ToString() + "\n"; } break; default: txt = incorrectMessege(); break; } txt += "[" + DateTime.Now.ToLongTimeString() + "]: " + "CRC16: 0x" + buffer[buffer.Length - 2].ToString("X2") + buffer[buffer.Length - 1].ToString("X2") + "\n"; this.BeginInvoke((Action)(() => { TextOut.AppendText("[" + DateTime.Now.ToLongTimeString() + "]: "); TextOut.AppendText(txt); TextOut.AppendText("".PadLeft(120, '-') + "\n"); TextOut.ScrollToCaret(); })); } else if (buffer != null && buffer[3] != 0) { this.BeginInvoke((Action)(() => { TextOut.ForeColor = Color.Red; TextOut.AppendText("[" + DateTime.Now.ToLongTimeString() + "]: "); TextOut.AppendText("Фискальный накопитель вернул следующий код ошибки: 0x" + buffer[3].ToString("X") + "\n"); TextOut.AppendText("[" + DateTime.Now.ToLongTimeString() + "]: "); TextOut.AppendText("Полное сообщение: "); for (int i = 0; i < buffer.Length; i++) { TextOut.AppendText("0x" + buffer[i].ToString("X") + " "); } TextOut.AppendText("\n"); TextOut.ScrollToCaret(); TextOut.ForeColor = Color.Black; })); } }