/// <summary> /// ReceiveMessage /// -- ----------------------------------------------------------------------------------------------------------------------------- /// -- Identifier Message ID Property Sim Number Order ID Body Check Code Idenfifier -- /// -- 7E 8100 000D 013100000000 F1D8 02810030383233313333383438 1A 7E -- /// -------------------------------------------------------------------------------------------------------------------------------- /// </summary> /// <param name="data">"7Exxxxxxxx7E" Representate a complete message</param> public void ReceiveMessage(byte[] data) { var messageID = decoder.DecodeToUshort(data, 1); if (!messageHandlerMap.ContainsKey(messageID)) { //Error log for not implement message //Logger.Error($"{messageID} message not implement yet."); return; } //var simnum = GetSimNumber(data); //Useful? //check code? //Reflection to message handler var bodyLength = GetBodyLength(data); var body = new byte[bodyLength]; var orderID = decoder.DecodeToUshort(data, 11); Array.Copy(data, 13, body, 0, body.Length); var handlerMethodName = messageHandlerMap[messageID]; var classInfo = typeof(DownOrderParser); var methodInfo = classInfo.GetMethod(handlerMethodName); var parameters = new object[] { orderID, body }; methodInfo.Invoke(this, parameters); }