Esempio n. 1
0
        //--
        void PlayConnectSppSvc()
        {
            BTCONNHDL s_currSPPConnHdl   = StackConsts.BTSDK_INVALID_HANDLE;
            BTDEVHDL  s_currRmtSppDevHdl = StackConsts.BTSDK_INVALID_HANDLE;
            UInt32    s_ComSerialNum     = 0;
            //----
            BtSdkError ulRet = 0;
            UInt32     osComPort;
            //
            const UInt32 UsageTypeConst = 1;
            const StackConsts.COMM_SET flags
                = StackConsts.COMM_SET.Record | StackConsts.COMM_SET.UsageType;
            const UInt16 BTSDK_CLS_SERIAL_PORT = 0x1101;
            const int    Timeout = 2200;

            //
            s_ComSerialNum = _factory.Api.Btsdk_GetASerialNum();
            _factory.Api.Btsdk_PlugInVComm(s_ComSerialNum, out osComPort,
                                           UsageTypeConst, flags, Timeout);
            ulRet = _factory.Api.Btsdk_InitCommObj(checked ((byte)osComPort),
                                                   BTSDK_CLS_SERIAL_PORT);
            //
            if (ulRet != 0)
            {
                var        sppStru = new Structs.BtSdkSPPConnParamStru(osComPort);
                BtSdkError ret     = _factory.Api.Btsdk_ConnectEx(s_currRmtSppDevHdl, BTSDK_CLS_SERIAL_PORT,
                                                                  ref sppStru, out s_currSPPConnHdl);
                if (ret != 0)
                {
                    Console.WriteLine("Connect remote SPP Service with local COM{0}\n", osComPort);
                }
            }
        }
Esempio n. 2
0
        //----
        void ConnectRfcommPreAllocateComPort(UInt16 svcClass16, UInt32 hDev,
                                             out UInt32 hConn, out byte channel, out int comPort
                                             //, out UInt32 comSerialNum
                                             )
        {
            UInt32 comSerialNum;
            //
            UInt32     comSerialNum0;
            BtSdkError ret;
            UInt32     osComPort;
            //
            const UInt32 UsageTypeConst = 1;
            const StackConsts.COMM_SET flags
                = StackConsts.COMM_SET.Record | StackConsts.COMM_SET.UsageType;
            const UInt16 BTSDK_CLS_SERIAL_PORT = 0x1101;
            const int    Timeout = 2200;

            //
            comSerialNum0 = _factory.Api.Btsdk_GetASerialNum();
            comSerialNum  = comSerialNum0;
            Debug.Assert(comSerialNum != 0, "INFO comSerialNum == 0 wierd maybe???");
            bool success = _factory.Api.Btsdk_PlugInVComm(comSerialNum, out osComPort,
                                                          UsageTypeConst, flags, Timeout);

            Debug.WriteLine(string.Format(CultureInfo.InvariantCulture,
                                          "Btsdk_GetASerialNum comSerialNum: {0}, Btsdk_PlugInVComm success: {1}, osComPort: {2}",
                                          comSerialNum0, success, osComPort));
            if (!success)
            {
                BluesoleilUtils.CheckAndThrow(BtSdkError.OPERATION_FAILURE, "Btsdk_PlugInVComm");
            }
            comPort = checked ((int)osComPort);
            ret     = _factory.Api.Btsdk_InitCommObj(checked ((byte)osComPort),
                                                     BTSDK_CLS_SERIAL_PORT);
            Debug.WriteLine(string.Format(CultureInfo.InvariantCulture,
                                          "Btsdk_InitCommObj ret: {0}", ret));
            BluesoleilUtils.CheckAndThrow(ret, "Btsdk_InitCommObj");
            //
            bool connSuccess = false;

            try {
                var sppStru = new Structs.BtSdkSPPConnParamStru(osComPort);
                ret = _factory.Api.Btsdk_ConnectEx(hDev, svcClass16,
                                                   ref sppStru, out hConn);
                Debug.WriteLine(string.Format(CultureInfo.InvariantCulture,
                                              "ret: {0}, hConn: 0x{1:X}", ret, hConn));
                BluesoleilUtils.CheckAndThrow(ret, "Btsdk_ConnectEx");
                _hDev = hDev;
                //
                channel = 0; // unknown
                Console.WriteLine("Connect remote SPP Service with local COM{0}\n", osComPort);
                connSuccess = true;
            } finally {
                if (!connSuccess)
                {
                    FreeComIndex(_factory, comPort, comSerialNum0);
                }
            }
        }
Esempio n. 3
0
 internal static extern BtSdkError Btsdk_ConnectEx(BTDEVHDL dev_hdl, UInt16 service_class, ref Structs.BtSdkSPPConnParamStru lParam, out BTCONNHDL conn_hdl);
 BtSdkError IBluesoleilApi.Btsdk_ConnectEx(BTDEVHDL dev_hdl, UInt16 service_class, ref Structs.BtSdkSPPConnParamStru lParam, out BTCONNHDL conn_hdl)
 {
     return(NativeMethods.Btsdk_ConnectEx(dev_hdl, service_class, ref lParam, out conn_hdl));
 }