public void ReadBuffer(byte[] receivedBuffer) { StringBuilder sb = new StringBuilder(); if (receivedBuffer.Length == 8) { HDType = KKS_HDType.GT06; for (int i = 0; i < receivedBuffer.Length; i++) { sb.Append(receivedBuffer[i].ToString("X2")); } TerminalIMEI = ulong.Parse(sb.ToString()); } else if (receivedBuffer.Length == 12) { if (receivedBuffer[9] == 0x1A && receivedBuffer[8] == 0x10) HDType = KKS_HDType.GT07;//GT05和GT07这2款设备的基本型使用一样的协议,在此全当做GT07来处理 else if ((receivedBuffer[9] == 0x0A && receivedBuffer[8] == 0x10) || (receivedBuffer[9] == 0x0B && receivedBuffer[8] == 0x10)) HDType = KKS_HDType.GT03; else if ((receivedBuffer[9] == 0x0B || receivedBuffer[9] == 0x04) && receivedBuffer[8] == 0x10) HDType = KKS_HDType.GK301; else HDType = KKS_HDType.GS503; byte[] bIMEI = new byte[8]; Array.Copy(receivedBuffer, 0, bIMEI, 0, bIMEI.Length); for (int i = 0; i < bIMEI.Length; i++) { sb.Append(bIMEI[i].ToString("X2")); } TerminalIMEI = ulong.Parse(sb.ToString()); } }
/// <summary> /// 添加GPSCODE与设备类型的字典 /// </summary> /// <param name="gpsCode"></param> /// <param name="gpsType"></param> private void AddCodeGpsTypeRelation(string gpsCode, KKS_HDType gpsType) { lock (objLocker) { if (_CodeGpsTypeRelation.ContainsKey(gpsCode)) { _CodeGpsTypeRelation[gpsCode] = gpsType; } else { _CodeGpsTypeRelation.Add(gpsCode, gpsType); } } }