Пример #1
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);
            }
        }