MWSDK改版履歴
MWSDKライブラリ 改訂履歴
各ライブラリの主要な修正箇所を記載しています。
以下の個別ライブラリについても参照ください。
バージョン名
MWSDKのバージョン名はリリース年と月を含めた MWSDK{YYYY}_{MM}
となっています。UNOFFICIAL
が付くものは、リリースのための包括的な検証作業を省略した適宜版となります。
MWSTAGE{YYYY}_{MM}
という命名になり、添付の MWSDK は MWSDK{YYYY}_{MM}
と同じバージョン名になります。また、TWELITE STAGE SDK には過去主要 MWSDK バージョンを含めており、[TWELITE STAGE アプリでiniファイルの書き換え]({{ }})により、有効にすることができます。MWSDK2025_08 (2025-08-08)
TWELITE STICK リリースに伴い整備した。
Wks_TweApps
- TWELITE Apps を追加した
- App_Twelite, App_UART, App_IO, App_Wings の MULTINONE(TWELITE Apps)対応を実施した
- App_OTA を追加した (TWELITE Apps 組み込み用 CUE/ARIA OTA 設定アプリ)
- TWELITE GOLD向け諸対応を実施した
- App_Wings の TWELITE STICK 対応を実施した
- TWELITE Apps 対応アプリでは、インタラクティブモードのメッセージを日・英選択できるようにした
- TWELITE Apps 対応のアプリの単体ビルドでは、ビルド時にインタラクティブモードの言語を指定できるようにした
- GOLD 対応コードを含めていない BLUE/RED アプリは
L
で始まるフォルダ名として SDK に同梱した (例: L_App_Aria)。 - いくつかの問題修正を実施した
App_Uart:
- Set timeout digits to 3
- DBコマンドを実装した
App_Wings:
- memory clear was not proper which destructed memory area and caused unexpected behavior.
Act_samples
- TWELITE GOLD 向けの修正を実施した
MkFiles
MULTINONE 対応を実施した(ライブラリビルドなど)
ビルド対象ソースファイルにフォルダ名を追加できるようにした。
APPSRC += mydir/myfile.c
TARGET_BIN
can be set by user’s makefile.- When it’s set, version file will be generated like
$(TARGET_BIN).0-1-1
.
- When it’s set, version file will be generated like
added
TARGET_NAME_NO_VER_TWENET
option to remove library version.introduced
_DISABLE_LTO
make variable to force LTO settings evenDISABLE_LTO
is given as a make parameter.- Force non-Windows compilers to disable LTO
introduced
TWELITE_SUPPORTED
make variable to specify buildable target system, which should be put on Makefile for projcects with limited target.introduced
TWELITE=LIST_SUPPORTED
make parameter just to list supported targets.MkFIles: supported LANG selection for interactive mode.
- set
TWE_LANG_PREF
asJP
,US
ornone
for make a paramter - required to set
TWE_LANG_MULTI_SUPPORTED
in the project Makefile, likeTWE_LANG_MULTI_SUPPORTED=US JP
- if both
TWE_LANG_PREF
andTWE_LANG_MULTI_SUPPORTED
,-DUSE_LANG_INTERACTIVE={LANG CODE}
is set.
- set
mwx and eastl are included for non-mwx build (using mw.mk for C projects).
APP_SRC_DEFAULT_DIR
handling was wrong in mw.mk.INCFLAGS_CXX
has too many-I
s without dir (some-I
… was ignored)
SDK全般
NXPのSDKライブラリの2.6.12をベースにした
BLUE/RED と共通の SDK とした
BANK7向けメモリ領域確保を行った
_twenet_pv_twenet_reserve_base
MULTINONE向けのメモリ領域確保を行った (TWENETmcu)
_MULTINONE_PS_APP_DATA
_MULTINONE_PS_APP_DATAEXT
_MULTINONE_U32_APP_CONFIG
_MULTINONE_U32_APP_AUX
以下はライブラリの修正抜粋を記載する。
MWX 0.2.2 に更新
TWENETcmpt (2025/04/25)
- Supportted alternative pins set for SPI by adding
vAHI_SpiSetLocation_MW()
. - added support on alternative I2C port by AHI API.
- fixed watchdog API due to limitation of TWELITE GOLD, WDT cannot stop nor restart.
- NTAGs
- Add nfc pthru init.
- moved
vAHI_NtagOnSleep_MW()
andvAHI_NtagOnWakeup_MW()
to TWENETmwf.
- Supportted alternative pins set for SPI by adding
TWENETcore 1.3.8
- added
vDebugInit_UART0()
to hide legacyvfPrintf()
. - added
ToCoNet_vDebugMsg_Force(const char* fmt, ...)
to force debug messages. (note: this should be called aftervDebugInit_UART0()
.) - for MULTINONE,
- added initialization function for dynamic memory allocation.
- added
ToCoNet_USE_MOD_TXRXQUEUE_MULTINONE
for common buffer size allocation for RF packets.
- added
ToCoNet_DupChk_psInit_Dynamic(uint8 COUNT)
to allocate memory used for DupChk module dynamically.
- added
TWENETutils 2.1.0
- fixed that RX queue count reports 0 when RX data is frequent. (local cache in
SERIAL_i16RxChar()
bothers, should report local cache count as well, however it WAS not implemented. Thus local cache code was removed.) - changed
EEPROM_6X_USER_SEGMENTS
from60
to56
, for reservation blocks for MULTINONE apps where chosen app and cofinguration information is stored.
- fixed that RX queue count reports 0 when RX data is frequent. (local cache in
TWENETstgs (twesttings) 0.2.8, 0.2.9, 0.2.10
- TWELITE GOLD 向けにコードを追加修正した
- MULTINONE 向け修正を実施した
- デフォルト設定の
E_TWESTG_DEFSETS_UARTBAUD
(UART 設定) のボーレートを 38400bps から 115200bps に変更した [37efb77] - added
TWESTG_vInit_tsFinal_Dynamic()
for BLUE/RED. - change
MW_MULTINONE_FIRM_DEFS[]
to*MW_MULTINONE_FIRM_DEFS
(has warning when linking) - added
Firms::clear_firm_id()
to callE_TWESTG_MULTINONE_CLEAR
. tweintarctive_walker.cpp, .hpp
,termio.h
を追加し、インタラクティブモードの設定情報や MULTINONE の格納アプリを参照、設定できるようにした。bool_t TWESTG_vInit_tsFinal_Dynamic()
を追加- added
E_TWESTG_MULTINONE_CLEAR
onE_TWESTG_CMD_OP_MUITINONE_CONTROL
command.
- デフォルト設定の
- added
E_TWEINTCT_OP_GET_APPINFO
, asking app to inform application configuration data byTWEINTRCT_cbu32GenericHandler()
callback function. - renamed from
SerCmdTimeout
toTWESERCMD_Timout
- added
TWESERCMD_Ascii_vOutput_ADDR_CMD()
,TWESERCMD_Binary_vOutput_ADDR_CMD()
that the argument byte sequence was separated by the first two bytes and the remainder. - インタラクティブモードのメッセージを置き換えるための仕組みを強化した。また日本語テーブルも用意した。[2f44410]
- added 3more message replace tables.
- added
TWEINTRCT_psQueryMsgReplace()
function to identify alternative message (other than English) - added
TWESTG_DEFSETS_BASE_MSG_JP[]
message table for BASE settings.
- インタラクティブモードの詳細等のメッセージ出力が長くなった場合にシリアルバッファがオーバーフローしたり、ウォッチドッグがタイムアウトしないように、適宜、シリアル出力待ち(flush)とウォッチドッグリセットを挿入した。[a276f1b]
- インタラクティブモードのメッセージの改定
- added TWEINPUTSTRING_BUFFER_SIZE (48 bytes) as the maximum number of characters for input prompts. [a38dbba]
- added TWEINTRCT_tsContext* TWEINTRCT_psQueryContext() to get a pointer to context of interactive mode. [a38dbba]
- added data type and maximum length check for loading data sequence. [a38dbba]
- added BINARY type (E_TWEINPUTSTRING_DATATYPE_BINARY) of input for intaractive mode settings. [a4be0ec]
- added emphasis tag (*, **, ***) and some escape sequence (\n *) which outputting a description. [a4be0ec]
- 二進数文字列を数値型に変換する
TWESTR_u32BinstrToNum(uint8 *p, uint8 u8len)
を追加 (e.g.0011
⇒3
,FFTT
⇒3
) [a4be0ec] static uint16 s_GetUartBaudOpt(uint32 baud, uint8 bits, uint8 parity, uint8 stop)
でボーレートの計算が正しくなかった。 [a255260]TWESTG_CMD_u32CmdOp()
の第二引数をNULL
にしても良いように処理を修正した。[f1d3e61]- added an option
TWESTG_LOAD_OPT_IGNORE_KIND
to force load settings from flash/eep even KIND data is different. [a211e9c] - added
u8kind
andu8slot
toTWEINTRCT_tsContext
, which is intended to be used by application code. (previously, they were allocated by application code. now it’s convenent to have them in TWEINTRCT context.) [5987988] - introduced
TWEINTRCT_tsContext::config.u8UnhandeldKeyReport
to raise key callback when it’s not handled within menu screen. [2ebfeb7] TWESTG_DATATYPE_WITH_SIZE_UINT8 ((TWESTG_DATATYPE_UINT8 << 4) | 1)
などのマクロを追加 [a22bb18]- インタラクティブモードの数値入力時に
-
を受け付ける様にした。 [aa6ccb3] - support
u8,u16,i8,i16
for range parameters asTWESTG_tsElement::sValidate.d1
ord2
, whic is used for validatorTWE_APIRET TWESTGS_VLD_u32MinMax()
. [80a5f11] - added
TWEINTCT_tsContext::config.u32OptScreenOps
to change behavior of screens in interactive mode. [dc30d18]E_TWEINRCT_CONFIG_SCREEN_NO_EXIT_BY_ESC
– no exit from the default interactive mode screen by ESC keyE_TWEINRCT_CONFIG_SCREEN_NO_EXIT_BY_PULSPLUSPLUS
– no exit from interactive mode by +++ keysE_TWEINRCT_CONFIG_SCREEN_NOUSE_LEFT_RIGHT_ARROW
– no use of RIGHT/LEFT arrow key in interactive mode screen (will pass to application callback)
- NTAG 関連コードの追加 [f64e8f9]
- added
E_TWEINTCT_OP_GET_APPINFO
, asking app to inform application configuration data byTWEINTRCT_cbu32GenericHandler()
callback function. [d67936d] - インタラクティブモードのEEPROM操作画面での修正を実施した。 [76d9eb3]
- fixed EEPROM erase sector behavior (cannot input Y to erase).
- modified sector display by key ‘0’ to ‘1’ to include sector number.
- インタラクティブモード定義で、カスタム定義を行った場合、期待しない項目が表示される・されない問題があった [49f3ca4] [db98397]
- correct array operation when UNUSE settings operation in custom default data. (before, an entry has not been cleared properly)
- added debug message (needs update of TWENETutils when output message before UATR init.)
- The last element of internal array was not cleared when applying UNUSE.
- インタラクティブモードに MULTINONE ファーム選択・設定機能・メニューを追加した [6df39b7] [142eae7]
- added a function to save Boot App Firm ID to EEP as API,.
bool_t TWEINTCT_FIRMS_bSetApps(uint32_t firmid_to_set, uint8_t conf_to_set, uint8_t lang_to_set);
- added key op at interactive mode screen. (finally, the key
:
is used.)
- added a function to save Boot App Firm ID to EEP as API,.
- MULTINONE 関連の修正を実施した [e15185b]
- added for BLUE/RED —
bool_t TWESTG_vInit_tsFinal_Dynamic(TWESTG_tsFinal *psFinal, uint8 COUNT, uint8 STRBUF, uint8 CUSTDEF);
- added
E_TWESTG_MULTINONE_CLEAR
onE_TWESTG_CMD_OP_MUITINONE_CONTROL
command. - added
Frims::clear_firm_id()
to callE_TWESTG_MULTINONE_CLEAR
. - added
TWESTG_vInit_tsFinal_Dynamic()
for BLUE/RED. - change
MW_MULTINONE_FIRM_DEFS[]
to*MW_MULTINONE_FIRM_DEFS
(has warning when linking for BLUE/RED)
- added for BLUE/RED —
- MULTINONE 関連の修正を実施した [bf11746]
- added
firms::clear_firm_id_and_settings()
to clear whole EEP region.
- added
E_TWESTG_MULTINONE_CLEAR_FULL
command to clear whole EEP region. - added support for serial condition (parity, wordlen, stop) on
TWETERM_vInitJen()
.
- added
- added
TWETERM_vInitJen_v()
to init uart by variable parameters. [c1ff769] - don’t show exit messages when resetting by key shortcut to firmware select. [e51ca45]
- fixed that
E_TWEINRCT_CONFIG_SCREEN_NO_EXIT_BY_PULSPLUSPLUS
option was not worked. [6fad76e] (the flagsSerCmd_P3.bverbose
is controlled byTWESERCMD_Plus3_u8Parse()
, however the prevous code was not aware of it. so new flag is introducedpsIntr->bVerbose
) - 標準設定の説明から UART のビット、パリティ、ストップビットの設定について削除した
- added
E_TWESTG_CMD_OP_REVERT
, to revert setting (note: require to save to take an effect) [94a1889] SerCmdChat
でタイムアウト処理を出来るようにした [200e901]- introduced
E_TWEINRCT_CONFIG_ALWAYS_REPORT_VOID_KEY
mask option atconfig.u8AlwaysKeyReport
to pass void key event (to check timeout, etc) - save tick every key input at
SerCmdChat
.
- introduced
TWENETutils 2.1.0
- fixed that RX queue count reports 0 when RX data is frequent. (local cache in
SERIAL_i16RxChar()
bothers, should report local cache count as well, however it’s not implemented.) [582eed6]
EEPROM_6X_USER_SEGMENTS
を60
から56
に変更した
- fixed that RX queue count reports 0 when RX data is frequent. (local cache in
MWSDK2024_07G (2024/7/16)
ドキュメント修正のみ
- TWELITE GOLD データシートを追加
- その他、ドキュメント改定
MWSDK2024_07G-RC1 (2024/6/26)
MWSDK2024_06G-3で実施したリリース向け検証にて発見された問題の修正を含めた。
- スリープ復帰後のプルアップレジスタの設定が適切に行われていなかった問題を修正。
バージョン情報等の記述を整理した。
- 000README1STなどバージョン記述について以下の調整を行った。
000manifest
は種にビルドライブラリのバージョンを記述し、ドキュメントや付随アプリ・サンプルコードのバージョン記述は別途とした。- ドキュメントバージョン(最終更新日付)を
000READEME1ST.md(html)
に記載。 - MWSDK付随のアプリコード、サンプルコードは
000vers_Wks_TweApps.md(html)
,000vers_Act_samples.md(html)
,000vers_Act_extaras.md(html)
に各々記載 (Version.mk
から機械的に生成)
MWSDK2024_06G-3 (2024/6/19) — hot fix
- 設定用グローバル変数
G_TWENET_B_MAC_ALWAYS_RESET_ON_WAKE()
を追加。1
を設定するとスリープ復帰後 MAC の再初期化を行う。デフォルトは0
で、スリープ前の状態からの復元 API を呼び出す。 - 一部のグローバル変数(RAM OFF スリープでも保持したい内容)について、
G_TWENET_*()
といったマクロに変更し、BANK7に移動した。(参考:TWENETmcu/board/bank7_reserve.h
)
MWSDK2024_06G-2 (2024/6/11) — hot fix
スリープ復帰時に MAC 層を完全に初期化する処理を追加(370usec程度分に処理時間がかかる)。
#include "bank7_reserve.h"
を行い、スリープ前にG_TWENET_B_MAC_ALWAYS_RESET_ON_WAKE()=0;
を行うことで従前の処理に変更する仕様ですが、本バージョンでは本設定を行うと起床時に無限ループを実行する(確認のための暫定コード)。
始動時に割り込みフラグがたっている割り込み源に対して、割り込みをクリアするコードを追加。
uint64_t g_twenet_irq_bm_on_boot
で1になっているビットが、対応する割り込み。bool_t __twenet_irq_handler_pending_on_boot(int32_t IRQ_Type)
の関数(WEAK)を定義することで、割り込みクリア前に処理を行うことができる。本関数をFALSE
で戻すとNVIC_ClearPendingIRQ()
による割り込みクリアを行う。bool_t g_twenet_skip_checkirqpending;
を廃止。
ToCoNet_vSleep()
の初期の段階でタイマーを稼働させ、実際のタイマーカウント値設定までの時間を計測するように変更。タイマー非稼働時にはその分の補正がなかったため、時間誤差が大きかった。タイマーカウント読み取りAPIをより安全なコードに変更(クロック待ちのウェイトが入る)。
MWSDK2024_06G-1 (2024/06/06) — hot fix
- スリープ時にPOWER DOWNが稀に失敗する問題に対して 100usecのディレーを挟んでPOWER DOWN 再試行する。
- 割り込み禁止時点ですべての割り込みフラグをクリア
- クロックの停止を早めに実行する
MWSDK2024_05G (2024/5/30) — beta
- スリープ復帰時の送信キューの初期化を行うようにした。(スリープ前の未送信状況は完全にクリアする)
- RAM OFF スリープ時に SRAM BANK7 を保持し、従来はデフォルト値に強制的に戻していたものを、スリープ前のIOの出力状態、プルアップ状態を復帰するようにした。
- メモリマップの詳細はこちらを参照ください
- 起床後に以下の処理を行い、IO状態を復元する。
- 出力設定のピンについては、出力設定を上書きし、LO/HI 値を復元する。
- 全てのピンのプルアップ状態の保存値に基づいて復元する。
- I2C用のPIO10,11はプルアップ無効設定時にECSビットを立てます。
- 上記処理後に IO RETENTION ビットを元に戻す。
- 起床状況(POR, wake from RAM OFF sleep, wake from RAM ON sleep, etc) を判定するためのコードの厳格化を行いました。
- 上述 RAM OFF スリープの判定を行うために必要な実装です。
u16AHI_PowerStatus()
の戻り値で RAM OFF Sleep と Software Reset の区別がつかないなどの問題がありました。u16AHI_PowerStatus()
に WatchDog からの復帰ビットを追加しました。
MWSDK2024_04G — beta
- I2Cバス関連の修正
- 再初期化によりクロック周波数を変更できるようにした
- リファレンスのライブラリコードを TWENETmwx ライブラリ化に配置。
TWENETmwx/source/sensors/legacy/SMBus.[ch]
- GPIO 関連の API で機能(I2C, SPIなど)有効済みになっているピンに対する操作に対して、不用意に書き換えない目的でグローバル変数
g_twenet_u32_pio_special_func_attached
を用いていたが、不整合を起こすコードも散見されたため、グローバル変数ではなくcheck_pio_if_gpio() TWENETcmpt
によりPIOレジスタを参照することで実施するようにした。※そういった不整合を起こしかねないユーザコードが無い場合は影響はない。
MWSDK2024_01_2 (2024/2/13)
- RAM OFF スリープ時の復帰後に DIO(GPIO) 制御が出来ない問題を修正。
- BANK7 メモリに96バイト分のリザーブ領域を追加 (現バージョンでは未使用)。
RAM OFF スリープ時の復帰後について
RAM OFFスリープ復帰後は、通常のハードリセットやPOR起動と同様の初期化手順となり、スリープ前のほとんどの状態は継承されません。今回の修正では、スリープ復帰後にDIO状態を変更できない問題に対応します。
以下の振る舞いをします。
- RAM OFF スリープ復帰後に
cbAppColdStart(TRUE)
を終了した後に、DIO状態を保持するレジスタ (SYSCON->RETENTIONCTRL
)のビットをクリアします。- スリープ前に出力設定にしたピンは
cbAppColdStart(TRUE)
の処理中に、出力設定およびHI/LO値の再設定を行う必要があります。 cbAppColdStart(TRUE)
の処理中は、出力設定やHI/LO値の設定を行っても、ピンの状態は変わりません。cbAppColdStart(TRUE)
の処理中での、ピンのHI/LO指定について確認する方法は用意されていません。cbAppColdStart(TRUE)
の処理中に IO 制御を行いたい場合は、ピンの出力設定およびHI/LO設定を行った後、本修正で新設したvoid vAHI_DioRetentionRelease_MW()
関数を呼び出します。関数呼び出し前に設定したHI/LO値に速やかに変化し、それ以降のHI/LO設定が可能になります。
- スリープ前に出力設定にしたピンは
- DIO割り込み起床をした場合は 、対応するDIOを示すビットマップを
u32AHI_DioWakeStatus()
関数の戻り値として取得できます。RAM OFF スリープにおいても、同様にビットマップを得られます。u32AHI_DioWakeStatus()
関数は、呼び出し後に内部的にビットマップをクリアしますので、続けて呼び出すと2回目は0
が戻ります。u32AHI_DioWakeStatus()
関数は、TWENET C API利用時は、cbAppColdStart(FALSE)
呼び出し中に実行します。MWXライブラリでは内部的に呼び出しを行い値を保存しています。
BANK7メモリのリザーブ領域について
修正の途上、追加した予約領域です。malloc()
などのメモリ確保APIを用いる場合に利用されるヒープ領域を、未設定時を含めBANK7を利用する場合、96バイト領域が予約領域となります。従前の予約領域と含め合計128バイトが予約され、BANK7で利用できるのは 4096-128 = 3968バイトです。
詳細はこちらを参照ください。
MWSDK2022_08
TWELITE APPS
キューアプリ(App_CUE/App_CUE_OTA) v1.1.1
- 動作センサーパルモード(シングルショット) 時にパルIDが意図しない値が出力される点を修正
アリアアプリ(App_ARIA/App_ARIA_OTA) v1.1.1
- 計測した温度が42℃以上になったときに、異常な値が出力される点をを修正
パルアプリ(App_PAL) v1.5.2
- 動作センサーパルのシングルショットモード時に意図しないパルIDが出る点を修正
- 計測した温度が一定以上になったときに、異常な値が出力される点を修正(TWELITE ARIA用の修正なので、環境センサーパルのコードの修正はありません。)
親機・中継機アプリ(App_PAL) v1.2.1
- パルアプリ(キューアプリ、パルアプリ)のデータの出力が意図しない値が出力される場合がある点を修正
シリアル通信アプリ(App_Uart) v1.4.7
- デフォルトの再送回数を2回に変更
Act_extras
ActEx_AQM0802
- MWXストリーム出力に対応
- AQM1602(16x2行の液晶)に対応
- コントラスト調整機能の追加
MWSDK2022_07
サンプルActの追加、TWELITE ARIA/TWELITE CUE/TWELITE PALに新機能追加、他。
TWELITE APPS
- 000desc.txtに英訳を追加
- Samp_PingPong、Samp_I2Cを新規採用非推奨に変更
キューアプリ(App_CUE/App_CUE_OTA) v1.1.0
- 指定した間隔ごとに加速度を1サンプルずつ送信する機能の追加
- 一定期間計測した加速度の平均、最小最大値を送信する機能の追加
アリアアプリ(App_ARIA/App_ARIA_OTA) v1.1.0
- 温湿度の計測値にオフセットと係数を掛ける機能を追加
パルアプリ(App_PAL) v1.5.1
- 動作センサーパルで加速度を1サンプルずつ送信する機能の追加
- 動作センサーパルで 一定期間計測した加速度の平均、最小最大値を送信する機能の追加
- 環境センサーパルで温湿度の計測値にオフセットと係数を掛ける機能を追加
親機・中継機アプリ(App_PAL) v1.2.0
- 加速度の平均、最大最小値を出力する機能の追加
Act_samples
- 000desc.txtに英訳を追加
- BRD_I2C_TEMPHUMID の追加
- I2C センサーデバイスを用いて、定期起床からの計測および送信を行うサンプル
Act_extras
- 000desc.txtに英訳を追加
- ActEx_AQM0802 の追加
- Sitronix社のI2C接続LCDコントローラ ST7032 を実装したLCDモジュール AQM0802 を使用するサンプル
mwx - 0.2.0
- ヒープ領域へのメモリ確保を行う 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イベントが無関係なポートに引き渡されていたのを修正
twesettings - 0.2.6
MWSDK2021_09より変更なし。コンパイル済みのライブラリは 2.5 のまま。ソースコードのみ。
TWENET C - 1.3.05 (L1305)
MWSDK2021_09より変更なし。
MWSDK2021_12
TWELITE ARIA 対応に伴う修正、他。
TweApps
App_PAL (1.3.4)
- TWELITE ARIA 向けの対応を追加
App_UART (1.4.6)
- 末尾にNUL文字を出力していたが、出力しないように修正
- 出力のカスタマイズで
>
(チェックサム範囲終了)が動作するようになった。- 例えば
MSG;<*>;%X\\n
と設定すると送信文字列 “HELLO
” に対して “MSG;HELLO;nn<改行>
” (nnはHELLO
のXORチェックサム) が出力される。
- 例えば
App_ARIA (1.0.0)
- 新規追加
App_ARIA_OTA (1.0.0)
- 新規追加
App_Wings (1.1.6)
- 親機が App_Wings でない場合に、中継機設定の App_Wings が中継しない問題を修正。
Act_samples
BRD_ARIA
スリープを伴う間欠駆動をしながら、計測、無線送信を行うサンプル。
Unit_brd_ARIA
ボードビヘイビア ARIA
に含まれる SHT4x センサオブジェクト .sns_SHT4x
を利用し、センサーのみを動作させるサンプル。
mwx - 0.1.9
- TWELITE ARIA 対応の追加
- ボードビヘイビア
<ARIA>
(BrdARIA
クラス) の追加 - センサー定義
SnsSHT4x
の追加
- ボードビヘイビア
- インタラクティブモード設定
<STG_STD>
のメニューの組み込み機能 (Extra Menu) が動作するように修正(※ mwx0.1.8 ではインタラクティブモード表示中に Serial 経由の出力を自動的に抑制するようにしたが、組み込み機能のコード中からも出力できるように手続きを用意した)
twesettings - 0.2.6
MWSDK2021_09より変更なし。コンパイル済みのライブラリは 2.5 のまま。ソースコードのみ。
TWENET C - 1.3.05 (L1305)
MWSDK2021_09より変更なし。
MWSDK2021_09
- 各サンプルのVS Code対応を強化
- TWELITE STAGE から環境変数を設定し、STAGE経由でVS Codeを開いた場合には、特別の名設定なしに、VS Code内のコード解釈やビルド実行を行えるようにした。
TweApps
App_CUE (1.0.3)
- スリープ時間を61秒以上に設定すると発生する問題を修正
App_IO (1.3.2)
- UARTコマンド処理で8ポート分までしか反映されない問題を修正
App_PAL (1.3.3)
- OTAメッセージの調整
- MC3630加速度センサーの初期化手続きの時間待ちを確実に行うようにした
- MC3630の加速度センサー割り込み時のしきい値を設定で変更できるようにした
App_Tag (2.2.4) (2525A)
- ADXL345 加速度センサーでスリープ復帰時ごとのセンサー値を得る場合、適切なセンサー値を得られない場合があったため、複数サンプル取得して不適切なサンプルの影響を除外した。
- パケット重複除去のためのDUPCHKモジュールに明示的に適切なパラメータを与えるようにした
- MAX31855のセンサー取得のための待ち処理を明示的に行うようにした
App_UART (1.4.1 -> 1.4.5)
- TWELITE UART専用ビルドの追加
- 高頻度に送信するときにパケットIDが想定外に一巡して重複チェッカによりパケットが除去される場合があったが、オプションビット0x0000:4000の設定で高頻度向けの設定にするようにした
- モード E を追加しこれをデフォルトとした。従前のモードD(透過モード)では、到着したパケットのアドレス情報など無線パケットより得られる情報を得ることが出来なかったが、出力に諸情報をカスタマイズ可能な形で含められるようにした
Act_samples
- 以下のように順を追って理解しやすいようにサンプルを整備した
- act0..4
- Scratch (シリアル入力で送信)
- Slp_Wk_and_Tx (スリープ→起床→送信)
- Parent_MONOSTICK (受信)
- …
- インタラクティブモード対応サンプルを拡充
on_rx_packet()
及びon_tx_comp()
コールバック関数に対応Parent_MONOSTICK
サンプルの強化、パケット内容を解釈してセンサー値などを表示- スリープを行うサンプルでは
SM_SIMPLE
ステートマシンを用いてloop()
内を完結に記述 Unit_Cue_MagBuz
サンプル(磁石が離れると圧電ブザーを鳴らす)の追加Unit_doint-bhv
サンプル(ビヘイビアを用いたDIO割り込み検出)の追加- サンプル名のリネーム
PAL_MOT
->PAL_MOT-fifo
PAL_MOT-oneshot
->PAL_MOT-single
PAL_AMB-behave
->PAL_AMB_bhv
mwx - 0.1.8
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単位で行うようにした
twesettings - 0.2.6
変更なし。コンパイル済みのライブラリは 2.5 のまま。ソースコードのみ。
TWENET C - 1.3.05 (L1305)
- チャネルマネージャ使用時に、最初のチャネル変更周期までは無線動作していない問題を修正
- チャネル切替が失敗したときにチャネル切り替え保留を示す変数を0クリアしないように、64ms以内に再度チャネル切り替えするようにした(現状はチャネルは切替可能までポーリング待ちをしているため、保留動作はしないため、動作に変化は想定しないが実装上自然な処理にした)
- Macの初期化関数(初期化済みなら何もしないが僅かながらのオーバーヘッドになりうる)を頻繁に呼び出していたため、これを抑制した
ByteQyeue
の割り込み処理を厳格化した- ハードウェア割り込みがほぼ同時に複数発生しハードウェアイベントキューに複数イベントが有る場合、イベントキューの後ろにあるイベントが遅延する可能性があった(先頭だけ処理して一旦処理ループを抜ける)
MWSDK2020_12
TweApps
App_CUE 1.0.1
- 新規
App_CUE_OTA 1.0.1
- 新規
App_Wings 1.1.4
- TWELITE CUE対応
App_PAL 1.3.2
- TWELITE CUE 用のコードを追加
- NOTICEPALに受信のみモードを実装
Act_samples
- Unit_PktParser の追加 (シリアル電文パーサー)
- Unit_EEPROM の追加 (EEPROMの読み書き)
- Unit_ADC (ADCの読み取り)
- Unit_CUE (TWELITE CUEのAct対応)
mwx - 0.1.7
- 詳細は https://mwx.twelite.info/v/latest/ を参照
- pkt_parser の追加 (シリアルメッセージを解釈)
- EEPROM クラスの追加 (EEPROM の読み書き)
- receive_nwkless_pkt オプションを追加。NWK_SIMPLEネットワーク下で、無線パケットのアプリケーションID,チャネルは一致した通常パケットを受信することが出来る。
twesettings - 0.2.6
コンパイル済みのライブラリは 2.5 のまま。ソースコードのみ。
- tweinteractive_defmenus.c が提供するメニューで項目数が10を超えたときの、リスト表示・選択動作の問題を修正。
MWSDK2020_10
mwx ライブラリの更新、サンプルの追加・更新、より実践的なサンプル Actエクストラ(ActEx_???) の収録を行いました。
TweApps
App_PAL 1.2.1
- NOTICE PAL 対応
- 送信間隔を1秒おきの設定を可能にした
App_Tag 2.2.2
- BME280のセンサー値演算式を修正
App_Twelite 1.9.1
- シリアルメッセージで死活判定をするための ACK 応答を追加
App_UART 1.4.1
- 重複パケットのタイムアウトを調整した (100ms 間隔で受信できる、重複判定のタイムアウトは1秒でこれを超えて同じパケットが届いた場合は再度表示される)
App_Wings 1.1.3
- NOTICE PAL 対応
- その他、修正
Act_samples
- 単機能のみを確認する Unit_??? サンプルの追加
- 通知PAL (NOTICE PAL) の LED ドライバ制御用のサンプル追加 (Unit_using_PAL_NOTICE)
- スリープ起床後送信するテンプレートコード Slp_Wk_and_Tx の追加
- Pal_MOT_oneshot の loop() を状態遷移で再記述
- Act で設定(インタラクティブモード)を用いるサンプル Setting を追加
Act_extras
- ActEx_DIO_Trans を追加 (DI状態を高速サンプルして送信先のDOに再現)
- ActEx_Sns_BME280_SHT30 を追加 (環境センサー BME280, SHT30 デバイス)
- ActEx_Sns_MLX90614 (赤外温度センサー MLX90614 の利用)
- ActEx_Sns_VL53L1X (レーザー距離センサー VL53L1X の利用)
mwx - 0.1.6
[0.1.6b4]
- 商・余を計算する 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))タイムアウトを無効に。その他 « 演算子の定義を追加。
[0.1.6b3]
- 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 間のスケール関数を追加。
[6fd542c]
- 10,100,1000による除算(商と余を同時に計算) div10(), div100(), div1000() を追加。値域を制限し乗算とビットシフトを中心に構成。
- 暗号化パケットの対応メソッドを追加
- packet_rx::is_secure_pkt() : 受信パケットが暗号化されているかどうかの判定
- STG_STD::u8encmode() : インタラクティブモードでの暗号化設定を取得
- STG_STD::pu8enckeystr() : インタラクティブモードでの暗号化鍵バイト列の取得
[0.1.6b2]
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 << 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内容の表示。
設定: 暗号化関連のメニューの追加
[4d8ce8b]
- I2C関連の修正(TwoWireクラスを用いて実装されたコードとの親和性を向上するための修正)
- requestFrom(false) の処理時に NO_STOP メッセージの送信コードが無かったため処理が正常に行われなかった。
- TwoWire のクラス名エリアスを追加した。
- begin() 処理で、多重初期化しないようにした。
- setClock() メソッドを追加(ただしダミー関数で何もしない)
- WIRE_CONF::WIRE_???KHZ を追加。バスクロックの主要な設定値を追加した。
twesettings - 0.2.5
更新無し
TWENET C - 1.3.04 (L1304)
更新無し
MWSDK2020_08_UNOFFICIAL - 2020-08-05
mwxライブラリに設定(インタラクティブモード)を追加しました。
mwx - 0.1.5
- 設定ビヘイビア <STG_STD> を追加
- mwx ライブラリ組み込みビヘイビアは network board application settings の4種類になったため、メインループの処理に settings の動作を追加
- 設定ビヘイビアは Serial 入力を横取りするため、これに対応して別途入力用のFIFOキューを追加し、Serail.read() はこのキューからデータを取得するように変更した
- <STG_STD>のテーブルは固定的であるが、項目名・ラベルの設定を差し替えるインタフェースを追加
- チャネルマネージャ(複数チャネル利用)の対応を追加
twesettings - 0.2.5
- mwx にインタラクティブモードを追加するための整備
- 設定名入れ替えのためのテーブル定義を追加
- mwx 用のテーブルを定義していたが mwx ライブラリに移動
TWENET C - 1.3.04 (L1304)
- 内部モジュールを mwx から登録するためのサポート関数を追加
- MOD_重複チェッカのタイムアウトと時間スケール値をパラメトリックにできるヘッダ定義を追加
MWSDK2020_07_UNOFFICIAL - 2020-07-27
いくつかの問題とmwxライブラリのAPIを追加しました。
mwx - 0.1.4
- MC3630 向けの初期化処理の強化
- setup(), wakeup() 中の delay() の精度向上
- Serial1 インスタンスの宣言の追加
- delayMilliseconds() の追加
- digitalReadBitmap() の追加
- Alalogue のコールバック関数が呼ばれない場合があった
twesettings - 0.2.4
- μ秒待ちのAPIを追加 TWESYSUTIL_vWaitPollMicro()
TWENET C - 1.3.03 (L1303)
変更なし
MWSDK2020_05 - 2020-05-29
MWSDK2020_05 を起点に以後の変更内容を記載します。