示例#1
0
        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);
        }
示例#3
0
 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;
     }
 }