改版履歴
軽微な修正にあたるものは、本改版履歴には記載を行わずGitHub上の改版のみとなります。必要に応じて修正を引用ください。
TWELITE STAGE の配布パッケージリリース後の修正・追加分などはGitHubレポジトリに格納しております。必要に応じて配布パッケージの位置を差し替えて利用いただくようお願いいたします。
MWSDKの他の更新が必要になる場合があります。更新時のリリース記述を参照してください。MWSDKの更新についてはこちらを参照ください。
ライブラリのソースコードは GitHub (https://github.com/monowireless/mwx)にて公開しています。ライブラリのソースコードの差し替えは、以下の手順で行ってください。
各リリースのリンクよりGitのクローンを行うか zip 形式でソースコードをダウンロードします。
以下のフォルダの内容を差し替えます。
リリース前の更新については上記に掲載する場合があります。
ヒープ領域へのメモリ確保を行う Wire オブジェクトを変更した。
utils.h
での名前の衝突を避けるため、関数名をG_OCTET()
からG_BYTE()
に変更した。
attachIntDio()
において、vAHI_DioInterruptEnable()
の順番を変更した。
ユニバーサルレシーバ (NWK_LAYERED, NWK_SIMPLE またはネットワークレスパケットを同一実行コードで受信する) をサポートするために the_twelite.network2
を追加した。
NWK_LAYERED を追加 (現時点では親機受信のみ対応)
MWXの初期化時にアプリケーションのバージョンを設定する MWX_Set_Usder_App_Ver()
関数を導入した。
mwx::pnew() を追加し配置newの記述を簡素化した。
EASTLのサポート追加
EASTL用のnew[]
演算子の追加
MWXのソースコードのほとんどをプリコンパイルし、コンパイルの高速化を図った。
修正されました。DIOイベントが無関係なポートに引き渡されていたのを修正。
インタラクティブモード中で Serialクラスオブジェクトを用いた出力を可能とする内部手続きを追加 (Serial._force_Serial_out_during_intaractive_mode()
)
Serial1
のポート、代替ポートの定義が適切でなかった
Serial
(UART0)のボーレートを変更できるようにした
受信パケット(on_rx_packet()
)、送信完了(on_tx_comp()
)を知らせるイベントコールバックを追加
コールバック関数の定義をしなければ従前の手続きも利用可能
<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
を用いスリープを行うと、復帰時にピンが正しく初期化されなかった
TWELITE CUE のボードビヘイビア(https://mwx.twelite.info/v/v0.1.7/boards/cue)を追加。
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
にすると、平文のパケットも受信する。
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
を追加。バスクロックの主要な設定値を追加した。
チャネルマネージャ chmgr
の実装
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月号収録)
ライブラリ名 | 依存バージョン |
---|---|
ライブラリ名 | 依存バージョン |
---|---|
ライブラリ名 | 依存バージョン |
---|---|
ライブラリ名 | 依存バージョン |
---|---|
ライブラリ名 | 依存バージョン |
---|---|
ライブラリ名 | 依存バージョン |
---|---|
ライブラリ名 | 依存バージョン |
---|---|
mwx
twesettings
TWENET C
1.3.5
mwx
twesettings
TWENET C
1.3.5
mwx
twesettings
TWENET C
1.3.5
mwx
twesettings
TWENET C
1.3.4
mwx
twesettings
TWENET C
1.3.4
mwx
twesettings
TWENET C
1.3.4
mwx
twesettings
TWENET C
1.3.3