OPH-5000 Bluetooth MFiによる通信のOPH-5000のユーザアプリケーションの開発手順は次のとおりです。

 OPH-5000iのユーザアプリケーションを開発するために使用する 開発環境でご確認ください。
以下の例では、Bluetooth SPP MasterでMFi通信によるデータの送受信を行うサンプルコードを解説します。

通信設定


 Bluetoothの通信条件の設定は、SetConfig関数によって行うことができます。
 設定が有効になるのは、一旦通信ポートをクローズして、再度オープンした時点となります。
サンプル
setconfig_comapi spp_cfg;
SetDefault(COM3);//SPP/Master
strncpy((char *)spp_cfg.blt.address, bdAddress, BLT_BD_ADDR_LEN);
spp_cfg.blt.iPhoneMode = ENABLE_IPHONE_MODE_SPP_MASTER;
SetConfig(port, (void *)&spp_cfg);

MFi通信APIの利用


 主なMFi通信APIの使用方法について、サンプルコードを用いて解説します。
  • Bluetooth MFiの通信セッションの接続状態を取得する

    GetMfiAccessoryStatus関数はOPH-5000iのBluetooth MFiの通信セッションの接続状態を取得します。
    サンプル
        mfiStatus = GetMfiAccessoryStatus();
        if (mfiStatus != iAP2_EASs_CONNECT){
            if (prevMfiStatus != mfiStatus){
            printf("Accessory close\r\n");
            ScannerPower(OFF, 0);
          }
        }else{
            if (prevMfiStatus != mfiStatus){
            printf("Accessory open\r\n");
            ScannerPower(SINGLE, 3 * 50);
            printf("Waiting receive host:\r\n");
          }
          ......
        }
        

  • 指定されたCOMポートの接続状態の接続状態を取得する

    GetConnectionStatus関数は指定されたCOMポートの接続状態を取得します。
    サンプル
        if (GetConnectionStatus(COM3) != COM_STATE_CONNECT)
        {
            printf("Disconnected\r\n");
            Cursor(NOWRAP);
            ComClose(COM3);
            break;
        }
        

  • Bluetooth MFi送信

    AccessoryDataTransfer関数はBluetooth MFiによる通信でデータを指定バイト数分、送信します。
    サンプル
        if (ReadBarcodeEx(&bcr) == OK){
            /** ----- Barcode data send ----- **/
            AccessoryDataTransfer(bcr.text, bcr.length);
            printf(bcr.text);
            printf("\r\n");
         }
        


  • Bluetooth MFi受信

    GetCom関数は1バイトのデータを通信ポートより読み込みます。
    サンプル
        /** ----- Data receive ----- **/
        while ((recvData=GetCom(0)) >= 0){
            if (recvData > ' ' && recvData < 0x7f){
                int prevColor = SetTextColor(RGB_BLUE);
                putchar(recvData & 0xFF);
                SetTextColor(prevColor);
            }
        }
        

関連事項

最終更新日:2021/10/29