9章:App_TweLiteの修正とWin-PingPongの修正

    作成2014.08.15

     App_TweLiteプログラムの修正とWin-PingPongプログラムの以下の修正について検討します。
    *AI1〜AI4の値変化時の状態報告を停止
    *状態報告間隔を1s→10sに変更
    *任意のタイミングでの状態報告機能追加

  1. App_TweLiteの修正とWin-PingPongの修正プログラムのダウンロード
     完成プログラムは「40-9.zip」ファイルをダウンロードしてください。
    [40-9..zip]をダウンロードする。

     解凍するとフォルダー内にApp_TweLiteフォルダーがあります。
    \App_TweLite\Master\Build\App_TweLite_Master_JN5164_1_6_5.bin
    \App_TweLite\Master\Build\App_TweLite_Master_JN5164_TOCOSTICK_1_6_5.bin
    が実行ファイルです。

     Win-PingPongフォルダー内にWin-PingPong.exeとWin-PingPong.slnがあり、Win-PingPong.exeが実行ファイルです。 Win-PingPong.slnはMicrosoft Visual Basic 2010 Expressで開きます。


  2. 基本操作方法
    (1)\App_TweLite\Master\Build\App_TweLite_Master_JN5164_1_6_5.binを無線マイコンTWE-Lite DIP (トワイライト・ディップ)に書込みます。
    (2)\App_TweLite\Master\Build\App_TweLite_Master_JN5164_TOCOSTICK_1_6_5.binをToCoStick(トコスティック)に書き込みます。
    (方法は7章:ToCoNet(トコネット)のソフトウエア開発環境(SDK) とPingPongの実行プログラムの書込みを参照願います。

    (3)TWE-Lite R(トワイ・ライター)に無線マイコンTWE-Lite DIP (トワイライト・ディップ)をセットしてUSBをパソコンに接続します。
    (4)ToCoStick(トコスティック)をパソコンに接続します。
    (5)「Win-PingPong.exe」をダブルクリックで起動します。
    (6)画面の左側を「COM9」にセットして、「Conect」ボタンを押します。
    (7)画面の右側を「CON8」にセットして、「Conect」ボタンを押します。
    (8)TWE-Lite R(トワイ・ライター)のリセットボタンを押します。
    (9)以下の画面から「COM9」がTWE-Lite R(トワイ・ライター)に接続されていることが確認できます。

    (10)ToCoStick(トコスティック)のリセットボタンは押せないにで、うまく動作しない場合はさし直しが必要となります。
    (11)コマンド0x81の状態通知が10s間隔で交互に受信されます。
    (12)ここで、左側の「F1機能」ボタンを押すとTWE-Lite R(トワイ・ライター)の状態通知のみが増加します。
    (13)右側の「F1機能」ボタンを押すとToCoStick(トコスティック)の状態通知のみが増加します。


  3. 設定変更(インタラクティブ)モード
     「Win-PingPong.exe」で設定変更(インタラクティブ)モードの設定が可能です。
    (1)左側Send Dataのテキストボックスに「+」を設定します。

    (2)「Send Data vbCrLf無し」ボタンを3回以上下記の表示がでるまで押します。

    (3)左側Send Dataのテキストボックスに「o」を設定します。
    (4)「Send Data vbCrLf無し」ボタンを1回押します。
    (5)左側Send Dataのテキストボックスに「00000002」を設定します。
    (6)「Send Data vbCrLf有り」ボタンを1回押すと以下の画面になります。

    (7)左側Send Dataのテキストボックスに「S」を設定します。
    (8)「Send Data vbCrLf無し」ボタンを1回押します。
    **以上の操作で一定時間毎の状態通知がなくなります。
    **同様な操作でToCoStick(トコスティック)の設定変更も可能です。


  4. Win-PingPongプログラム変更箇所
    (1)「Send Data vbCrLf有り」ボタンを追加しました。(入力文字にリターン・ラインフィードを追加します。)
    (2)「F1機能」ボタンを追加しました。(0x80コマンドを送信します。)


  5. App_TweLiteプログラムの変更箇所
    (1)AD値の変化時の状態報告を停止しました。(不規則な状態報告を廃止)
    cbToCoNet_u8HwInt():ペリフェラルの割込み
    PUBLIC uint8 cbToCoNet_u8HwInt(uint32 u32DeviceId, uint32 u32ItemBitmap)
    #define IS_APPCONF_OPT_NO_ADC_BASED_TRANSMIT() (sAppData.sFlash.sData.u32Opt & E_APPCONF_OPT_NO_ADC_BASED_TRANSMIT)
    #define E_APPCONF_OPT_NO_ADC_BASED_TRANSMIT 0x0010 //!< ADCの変化に応じた送信を禁止する。
    if (!IS_APPCONF_OPT_NO_ADC_BASED_TRANSMIT()) 
    {
    	//***!!!***変更
    	//sAppData.bUpdatedAdc |= bUpdated;
    }
    
    ***sAppData.bUpdatedAdc |= bUpdated;を削除しました!!

    (2)状態報告の周期変更(1s→10s)
    * アプリケーション制御(電源常時 ON モード)
    void vProcessEvCorePwr(tsEvent *pEv, teEvent eEvent, uint32 u32evarg)
    // 次の定期パケットのタイミングを仕込む
    //!!!!!******変更
    //sAppData.u16CtRndCt = (ToCoNet_u16GetRand() & 0xF) + 24; //1s
    sAppData.u16CtRndCt = 32*10; //10s
    ///!!!****変更
    gbCond=0;/F1機能用フラグクリア


    (3)F1機能追加(F1ボタンで状態報告)
    * パケットの受信完了時に呼び出されるコールバック関数。
    void cbToCoNet_vRxEvent(tsRxDataApp *psRx)
    *送信終了待ち
    case TOCONET_PACKET_CMD_APP_USER_IO_DATA_EXT: // IO状態の伝送(UART経由)			
    gbCond=1;		//***!!!!***変更	
    //vfPrintf(&sSerStream, LB "TP3");			
    if (PRSEV_eGetStateH(sAppData.u8Hnd_vProcessEvCore) == E_STATE_RUNNING) { // 稼動状態でパケット処理をする			
    	vReceiveIoSettingRequest(psRx);		
    }			
    break;			
    
    **gbCond=1;を追加

    (4)グローバル変数追加
    //!!!!****変更
    extern int gbCond=0;

    (5)状態報告の実行フラグセット
    * アプリケーション制御(電源常時 ON モード)
    void vProcessEvCorePwr(tsEvent *pEv, teEvent eEvent, uint32 u32evarg)
    ///!!!****変更		
    if(gbCond == 1)		
    {		
    	bCond = TRUE;	
    }		
    		
    // 送信		
    if (bCond) {	
    
    *if(gbCond == 1) {bCond = TRUE;} を追加

    **以上が変更箇所です!!


  6. 結果の検討
    (1)最初に状態報告の時間を変化させる際、AI1からAI4の値が変化すると自動状態報告することにきづきませんでした!!
    (2)このため、時間間隔の設定をかえても状態報告の間隔がかわりませんでした!!
    (3)AI1からAI4の値が変化による自動状態報告を削除するとだいぶすっきりしました。
    (4)AI1からAI4の電圧を3.3V設定すると状態変化がなくなりますが、オープン状態では電圧が変化します。
    (5)I1からAI4の値が変化による自動状態報告を削除すると未使用のAI端子を3.3Vに接続する必要がなくなります。
    (6)後は、難解なプログラムコードを解析して、必要部分のみを修正しました。
    (7)結構難しい!!!




10章:TWE-Zeroアプリ(シリアル通信専用アプリ)の動作試験に行く。

トップページに戻る。