public Message(byte[] messageBuffer) { this._messageBuffer = messageBuffer; string key = ""; try { string original = ByteHelper.BytesToString(messageBuffer, messageBuffer.Length); string hexEncoded = ByteHelper.BytesToHexString(messageBuffer, messageBuffer.Length); _messageHexEncoded = hexEncoded; log.Debug(string.Format("-> Original : [{0}]", original)); log.Debug(string.Format("-> Hex encoded : [{0}]", hexEncoded)); key = hexEncoded.Substring(42, 5).ToLower(); } catch (ArgumentOutOfRangeException aEx) { log.Debug("ArgumentOutOfRangeException", aEx); _messageType = DeviceMessageType.MessageError; } catch (Exception ex) { log.Debug("Exception", ex); _messageType = DeviceMessageType.MessageError; } if (key != "") { InitMessageType(key); } log.Debug(string.Format("-> CommandType : [{0}]", _messageType.ToString())); }
internal static Task <ServerMessage> SendDeviceMessage(ButtplugFFIMessageSorter aSorter, ButtplugFFIDeviceHandle aHandle, uint aDeviceIndex, FlatBufferBuilder aBuilder, DeviceMessageType aType, int aOffset) { DeviceMessage.StartDeviceMessage(aBuilder); DeviceMessage.AddMessageType(aBuilder, aType); DeviceMessage.AddMessage(aBuilder, aOffset); DeviceMessage.AddDeviceIndex(aBuilder, aDeviceIndex); var task = aSorter.PrepareClientMessage(aBuilder); var device_msg = DeviceMessage.EndDeviceMessage(aBuilder); aBuilder.Finish(device_msg.Value); var buf = aBuilder.SizedByteArray(); ButtplugFFICalls.buttplug_parse_device_message(aHandle, buf, buf.Length); return(task); }
private void InitMessageType(string key) { switch (key) { case "00 01": _messageType = DeviceMessageType.Beat; break; case "00 02": _messageType = DeviceMessageType.ACK; break; case "00 03": _messageType = DeviceMessageType.SearchParameterResponse; break; case "00 04": _messageType = DeviceMessageType.LocationInfo; break; case "00 05": _messageType = DeviceMessageType.UploadFaultCode; break; case "00 07": _messageType = DeviceMessageType.UploadJourneyRecord; break; case "00 08": _messageType = DeviceMessageType.UploadObdStatus; break; case "00 09": _messageType = DeviceMessageType.UpdateRequest; break; case "00 0a": _messageType = DeviceMessageType.UpdateResponse; break; case "00 0b": _messageType = DeviceMessageType.ObdFaultStatus; break; case "00 0d": _messageType = DeviceMessageType.UploadUnknownSms; break; case "00 0e": _messageType = DeviceMessageType.DeviceAgpsTime; break; case "00 0f": _messageType = DeviceMessageType.UpdateAgpsRequest; break; case "00 10": _messageType = DeviceMessageType.UpdateAgpsResponse; break; case "00 11": _messageType = DeviceMessageType.SmsNoticeParameters; break; case "00 14": _messageType = DeviceMessageType.ComfirmTime; break; default: break; } }