Пример #1
0
        public static void Service()
        {
            client.ClientStartRead();
            byte[] dataBytes             = client.ClientGetRxData();
            byte   type                  = client.ClientGetRxType();
            Motus_1_RawDataPacket packet = new Motus_1_RawDataPacket();

            if (type == (byte)ValidPacketTypes.motus_1_raw_data_packet)
            {
                packet.Serialize(dataBytes);
                short[] sData = packet.DeSerialize();
                int[]   data  = new int[sData.Length];

                for (int i = 0; i < data.Length; i++)
                {
                    data[i] = (int)sData[i];
                }
                DataStorageTable.SetMotus_1_Data(data);

                if (logRawData)
                {
                    string msg = data[0].ToString();
                    for (int i = 1; i < data.Length; i++)
                    {
                        msg += "," + data[i].ToString();
                    }
                    Logger.LogMessage(msg);
                }
            }
        }
        public void Motus_1_PacketTestSerializeInvalidPayload()
        {
            Motus_1_RawDataPacket packet = new Motus_1_RawDataPacket();

            byte[] invalidBytePayload = new byte[12];
            packet.Serialize(invalidBytePayload);
        }
Пример #3
0
        private void GetHidReport(HidInputReportReceivedEventArgs args)
        {
            // For now there is only one data type
            HidInputReport rpt  = args.Report;
            IBuffer        buff = rpt.Data;
            DataReader     dr   = DataReader.FromBuffer(buff);

            byte[] bytes = new byte[rpt.Data.Length];
            dr.ReadBytes(bytes);
            Motus_1_RawDataPacket packet = new Motus_1_RawDataPacket();

            try
            {
                // Have to remove a bonus byte on the payload
                byte[] parsed = new byte[bytes.Length - 1];
                for (int i = 0; i < parsed.Length; i++)
                {
                    parsed[i] = bytes[i + 1];
                }
                packet.Serialize(parsed);
                byte[] stream = new byte[packet.ExpectedLen + DataPacket.NumOverHeadBytes];
                packet.SerializeToStream(stream, 0);
                SetData(stream);
            }
            catch (ArgumentException e0)
            {
                LogMessage(e0.Message + e0.StackTrace);
            }
            catch (IndexOutOfRangeException e1)
            {
                LogMessage(e1.Message + e1.StackTrace);
            }
        }
        public void Motus_1_TestPacketToString()
        {
            Motus_1_RawDataPacket packet = new Motus_1_RawDataPacket();

            packet.Serialize(testBytePayload);
            Int16[] intPayload = packet.DeSerialize();
            string  known      = intPayload[0].ToString();

            for (int i = 1; i < intPayload.Length; i++)
            {
                known += ",";
                known += intPayload[i].ToString();
            }

            Assert.AreEqual(known, packet.ToString());
        }
        public void Motus_1_PacketTestSerializeBytes()
        {
            Motus_1_RawDataPacket packet = new Motus_1_RawDataPacket();

            packet.Serialize(testBytePayload);
            byte[]  rtnPayload    = packet.Payload;
            Int16[] rtnIntPayload = packet.DeSerialize();

            Assert.AreEqual(packet.ExpectedLen, rtnPayload.Length);
            Assert.AreEqual(packet.ExpectedLen / 2, rtnIntPayload.Length);

            for (int i = 0; i < rtnPayload.Length; i++)
            {
                Assert.AreEqual(testBytePayload[i], rtnPayload[i]);
            }

            Int16[] known = new Int16[packet.ExpectedLen / 2];
            Buffer.BlockCopy(packet.Payload, 0, known, 0, packet.ExpectedLen);
            for (int i = 0; i < rtnIntPayload.Length; i++)
            {
                Assert.AreEqual(known[i], rtnIntPayload[i]);
            }
        }