private void Server_OnReceived(ClientSession session, LocalMessageEventArgs e) { try { if (e.bMessage[0] == Constants.HxAA && e.bMessage[1] == Constants.Hx55 && e.bMessage[2] == Constants.HxCC) { SendData_Analysis insSD_A = new SendData_Analysis(e.bMessage); string response = BitConverter.ToString(e.bMessage); byte codeCmd = e.bMessage[3]; switch (codeCmd) { case Constants.Hx00: Connect(session, insSD_A); break; case Constants.Hx01: Ping(session, insSD_A); //Cập nhật trạng thái 3 byte cuối của DATA if (_dic0x01.ContainsKey(session)) { int indexEnd = e.bMessage.Length - 1; _dic0x01[session].PingPong_2 = e.bMessage[indexEnd - 1].ToString(); _dic0x01[session].PingPong_1 = e.bMessage[indexEnd - 2].ToString(); _dic0x01[session].PingPong_0 = e.bMessage[indexEnd - 3].ToString(); } break; case Constants.Hx08: StoreData0x09(session, e.bMessage); break; case Constants.Hx09: break; case Constants.Hx0A: _cmd0x0A.Process0x0A(session, false); break; case Constants.Hx0B: UpdateThongSoXe(session, "Thành công"); break; case Constants.Hx0C: UpdateThongSoXe(session, "Không thành công"); break; case Constants.Hx0D: break; } } } catch (Exception ex) { FileHelper.WriteLogError("", ex.Message + Environment.NewLine + ex.StackTrace); } }
private void Ping(ClientSession session, SendData_Analysis insSD_A) { Exec(() => { ArraySegment <byte> pBuffer = new ArraySegment <byte>(insSD_A.DataSend.Data_Byte, 0, insSD_A.DataSend.Data_Byte.Length); session.Send(new ArraySegment <byte>(pBuffer.Array)); }); }