Пример #1
0
        private void decode_Response(PhotonCmdHeader cmd_hdr, BinaryReader packet)
        {
            // see func ReliableMessage() decode in...
            // https://github.com/broderickhyman/photon_spectator/blob/master/photon_command.go

            var opResponse = new ReliableMessage_Response();

            opResponse.ChannelID = cmd_hdr.ChannelID;

            opResponse.OperationCode         = packet.ReadByte();   // Operation Code
            opResponse.OperationResponseCode = packet.ReadUInt16(); // Operation Response Code
            opResponse.OperationDebugByte    = packet.ReadByte();   // Operation Debug Byte

            opResponse.ParameterCount = packet.ReadInt16();         // Parameter Count   (?? is this valid for all msg types?)

            Event_Photon_Cmd_Info?.Invoke("Photon Reliable Response - " + opResponse.OperationResponseCode);

            var parameters = new ReliableMessage_Response.Paramaters();

            // decode the paramaters
            for (int i = 0; i < opResponse.ParameterCount; i++)
            {
                var             paramID   = packet.ReadByte();                  // paramID
                PhotonParamType paramType = (PhotonParamType)packet.ReadByte(); // paramType

                var param_value = Decode_PhotonValueType.Decode(packet, paramType);

                parameters[paramID] = param_value;
                Event_Photon_Info?.Invoke("ParamID: " + paramID + "  value: " + param_value.ToString());
            }
            opResponse.ParamaterData = parameters;

            Event_Photon_ReliableResponse?.Invoke(opResponse);
        }
Пример #2
0
        public static PhotonData_SliceType DecodeFrom_WithType(BinaryReader packet, PhotonParamType type) {
            var length = packet.ReadUInt16();

            var acc = new List<PhotonDataAtom>();

            for (int i = 0; i < length; i++) {
                acc.Add(Decode_PhotonValueType.Decode(packet, type));
            }
            return new PhotonData_SliceType(type,new PhotonData_SliceValues(type, acc.ToArray()));
        }
Пример #3
0
        public static PhotonData_SliceType DecodeFrom(BinaryReader packet) {
            var length = packet.ReadUInt16();
            PhotonParamType value_types = (PhotonParamType)packet.ReadByte();

            var acc = new List<PhotonDataAtom>();

            for (int i=0;i<length;i++) {
                acc.Add(Decode_PhotonValueType.Decode(packet,value_types));
            }
            return new PhotonData_SliceType(PhotonParamType.SliceType,new PhotonData_SliceValues(value_types,acc.ToArray()));
        }