改版履歴
改版履歴
軽微な修正にあたるものは、本改版履歴には記載を行わずGitHub上の改版のみとなります。必要に応じて修正を引用ください。
TWELITE STAGE の配布パッケージリリース後の修正・追加分などはGitHubレポジトリに格納しております。必要に応じて配布パッケージの位置を差し替えて利用いただくようお願いいたします。
ライブラリのソースコードは GitHub (https://github.com/monowireless/mwx)にて公開しています。ライブラリのソースコードの差し替えは、以下の手順で行ってください。
- 1.各リリースのリンクよりGitのクローンを行うか zip 形式でソースコードをダウンロードします。
- 2.以下のフォルダの内容を差し替えます。
.../MWSTAGE/ --- TWELITE STAGE 配布フォルダ
.../MWSDK --- MWSDKフォルダ
.../TWENET/current/src/mwx <-- このフォルダを差し替える
リリース前の更新については上記に掲載する場合があります。
- ヒープ領域へのメモリ確保を行う Wire オブジェクトを変更した。
attachIntDio()
において、vAHI_DioInterruptEnable()
の順番を変更した。- ユニバーサルレシーバ (NWK_LAYERED, NWK_SIMPLE またはネットワークレスパケットを同一実行コードで受信する) をサポートするために
the_twelite.network2
を追加した。 - MWXの初期化時にアプリケーションのバージョンを設定する
MWX_Set_Usder_App_Ver()
関数を導入した。 - EASTL用の
new[]
演算子の追加
- MWXのソースコードのほとんどをプリコンパイルし、コンパイルの高速化を図った。
- 修正されました。DIOイベントが無関係なポートに引き渡されていたのを修正。
Serial1
のポート、代替ポートの定義が適切でなかったSerial
(UART0)のボーレートを変更できるようにした- コールバック関数の定義をしなければ従前の手続きも利用可能
<STG_STD>
インタラクティブモード設定の定義ID間違いや一部デフォルト値の変更など<STG_STD>
インタラクティブモード設定でAppIDに加えて、チャネルと論理デバイスIDのデフォルト値を変更できるようにしたthe_twelite
と<NWK_SIMPLE>
オブジェクトの設定を、一部の設定についてインタラクティブモード<STG_STD>
オブジェクトで行えるようにした<NWK_SIMPLE>
で再送回数のデフォルト値を設定できるようにした<STG_STD>
インタラクティブモードの画面が出ている間はアプリケーションからのSerial
(UART0)の入出力を行わないようにしたCUE::PIN_SET
,PAL???"":PIN_SET
を追加 (PIN_BTN
はボタンのないCUEでPIN_BTN
を用いるのは不自然であるため)random()
の名前空間をmwx::
に移動 (グローバル名にエリアス)- MONOSTICKのウォッチドッグ設定を32ms単位で行うようにした
BRD_TWELITE
を用いスリープを行うと、復帰時にピンが正しく初期化されなかった
- NWK_SIMPLE 利用時に NWK_SIMPLE 形式でない他のパケット(ネットワーク利用無し)を受信する方法を追加。
NWK_SIMPLE::receive_nwkless_pkt()
を追加してNWK_SIMPLEを初期化する。 このパケット情報を用いる場合は.get_psRxDataApp()
による TWENET C ライブラリ層の構造体、および.get_payload()
により得られるデータ配列のみを利用してください。受信パケット(auto&& rx = the_twelite.receiver.read()
)の他のメソッドから得られる情報は不定です。 get_stream_helper()
コードのリファインと読み書き位置のAPIの整備。smplbuf::get_stream_helper()
の不具合修正serparser/pktparser
を他のプラットフォームでビルドできるようサンプルを用意しました (https://github.com/monowireless/mwx/tree/master/stdio)
- 商・余を計算する
div100()
をSerial等へ出力できるようにした smplbuf<>
配列クラスの実装変更。消費メモリの削減などを目的としてmwx::stream
の継承をやめ、別途継承クラスとヘルパークラス定義したmwx_printf()
mwx_snprintf()
の関数を追加したthe_twelite.stop_watchdog()
,the_twelite.restart_watchdog()
を追加したmwx::stream
のメンテナンス:operator bool()
の廃止。読み出しタイムアウトの設定で 0xff を指定した場合(.set_timeout(0xff)
)タイムアウトを無効に。その他<<
演算子の定義を追加。- NOTICE PAL / PCA9632 のサポートを追加 (解説 https://mwx.twelite.info/v/latest/boards/pal/pal_notice, サンプル https://github.com/monowireless/Act_samples/tree/master/Unit_using_PAL_NOTICE)
- 除算を行わない 8bit と 0..1000 間のスケール関数を追加。
- 10,100,1000による除算(商と余を同時に計算)
div10()
,div100()
,div1000()
を追加。値域を制限し乗算と ビットシフトを中心に構成。 - 暗号化パケットの対応メソッドを追加
packet_rx::is_secure_pkt()
: 受信パケットが暗号化されているかどうかの判定STG_STD::u8encmode()
: インタラクティブモードでの暗号化設定を取得STG_STD::pu8enckeystr()
: インタラクティブモードでの暗号化鍵バイト列の取得
- Serial1: デフォルトのポートは半導体の仕様では I2C と重複する DIO14,15 だが、通常 I2C に割り当てられるため DIO11(TxD), DIO9(RxD) とした。
- Serial: ボーレートの指定で /100 が発生 するが、主要なボーレートについてこの計算を省略するようにした。
Serial: available()
,read()
を外部で実施するための代理関数の保持をvoid*
のみとし、仕様メモリを 8bytes 削減。typedef boolean
の追加- ネットワーク: 暗号化の対応を追加。
- 暗号化を有効にするには
NWK_SIMPLE::secure_pkt(const uint8_t*, bool = false)
を設定追加する。1番目のパラメータは暗号キー、2番目をtrue
にすると、平文のパケットも受信する。auto&& nwk = the_twelite.network.use<NWK_SIMPLE>();nwk << NWK_SIMPLE::logical_id(0xFE) // set Logical ID. (0xFE means a child device with no ID)<< NWK_SIMPLE::secure_pkt((const uint8_t*)"0123456789ABCDEF");;
- SHT3xとBME280のセンサーサポート追加
- センサー: レガシーコード(Cライブラリのラッパクラス)で、設定パラメータや状態をやり取りするための仕掛けを追加した。
- センサー: SHT3x, BME280では I2C アドレスを指定可能とした。
- 設定:
hide_items()
を追加。不要な設定項目を削除可能。 - 設定: H/W UTIL メニューを追加。DIの状態表示、I2Cのプローブ、PAL EEPROM内容の表示。
- 設定: 暗号化関連のメニューの追加
- I2C関連の修正(TwoWireクラスを用いて実装されたコードとの親和性を向上するための修正)
requestFrom(false)
の処理時に NO_STOP メッセージの送信コードが無かったため処理が正常に行われなかった。TwoWire
のクラス名エリアスを追加した。begin()
処理で、多重初期化しないようにした。setClock()
メソッドを追加(ただしダミー関数で何もしない)WIRE_CONF::WIRE_???KHZ
を追加。バスクロックの主要な設定値を追加した。
delayMilliseconds()
の追加digitalReadBitmap()
の追加delay()
の精度向上Serial1
インスタンスが定義されていない問題を修正Analogue
の割り込みハンドラが呼び出されな い問題を修正
MWSDK2020_05 に対応
- 重複チェッカ duplicate_checker の初期化等に不備があり期待通りの除去を行っていなかった
- format() の実装を機種依存の少ないものとした。また、引数を最大8までとした。64bit引数が含まれる場合は引数の数は制限される。
修正は MWSDK2020_05 を前提としています。
本修正については、更新を推奨します。
MWSDK2020_04 に対応
- Timer0..4の初期化の問題を修正
- mwx::format() の内部処理を変更
- インタラクティブモード対応のための実験的なコードの追加
本修正は MWSDK2020_04 を前提としています。
本修正については、更新を推奨します。
パケット内の中継フラグの扱いについての問題を修正
本修正については、更新を推奨します。
初版リリース (SDL 2019/12月号収録)
最終更新 1yr ago