Example #1
0
        public int WriteRawData(ushort cid, uint length, byte[] pkg)
        {
            if (0 != cid && _state == 1)
            {
                if (_isRecording)
                {
                    // TODO: need to have higher resolution than milliseconds...perhaps have a list of byte[]'s
                    TimeSpan timeSpan = DateTime.Now.Subtract(_recordingStart);
                    //while (timeSpan.Ticks == 0 || _macroBytes.ContainsKey(timeSpan))
                    //{
                    //    timeSpan = timeSpan.Add(new TimeSpan(0, 0, 0, 0, 1));
                    //}
                    try
                    {
                        Program.Debug.WriteLine(pkg[4].ToString());
                        _macroBytes.Add(new KeyValuePair <TimeSpan, byte[]>(timeSpan, (byte[])pkg.Clone()));
                    }
                    catch (Exception e)
                    {
                        Program.Debug.WriteLine(e.Message);
                        Program.Debug.WriteLine(e.StackTrace);
                        Program.Debug.WriteLine(timeSpan.ToString());

                        foreach (KeyValuePair <TimeSpan, byte[]> key in _macroBytes)
                        {
                            Program.Debug.WriteLine(key.Key.ToString());
                        }
                    }
                }
                return(L2CAPAPI.L2CAPWrite(cid, length, pkg));
            }
            return(-1);
        }
Example #2
0
        private void ListenOnCtrl()
        {
            Program.Debug.WriteLine("ListenOnCtrl started");
            ushort ctrlCid = _cidCtrl;

            for (; ;)
            {
                byte[] ucBuffer = new byte[1024];
                uint   cSize    = 0;

                Program.Debug.WriteLine("Try Read CTRL");
                int iErr = L2CAPAPI.L2CAPRead(ctrlCid, (uint)ucBuffer.Length, ref cSize, ucBuffer);
                Program.Debug.WriteLine(String.Format("Read CTRL : {0} [cSize={1}, ucBuffer[0] = {2}]", iErr, cSize, (cSize > 0) ? ucBuffer[0] : -1));
                if (iErr != 0)
                {
                    Disconnect();
                    break;
                }

                if (cSize > 0 && 0 != (ucBuffer[0] & 0x70))
                {
                    byte[] szBuffer = new byte[1];
                    szBuffer[0] = 0;

                    iErr = L2CAPAPI.L2CAPWrite(ctrlCid, 1, szBuffer);
                    Program.Debug.WriteLine("Write CTRL: Responding to 0x70: " + iErr);

                    _state = 1;
                }
                else if (cSize > 0 && 0 != (ucBuffer[0] & 0x90))
                {
                    byte[] szBuffer = new byte[1];
                    szBuffer[0] = 0;

                    iErr = L2CAPAPI.L2CAPWrite(ctrlCid, 1, szBuffer);
                    Program.Debug.WriteLine("Write CTRL: Responding to 0x90: " + iErr);

                    _state = 1;
                }
                else
                {
                    byte[] szBuffer = new byte[1];
                    szBuffer[0] = 0;

                    iErr = L2CAPAPI.L2CAPWrite(ctrlCid, 1, szBuffer);
                    Program.Debug.WriteLine("Write CTRL: No Response");
                }
            }
        }