/      English

MWSDK改版履歴

TWELITE STAGE SDK の MWSDK 改版履歴

MWSDKライブラリ 改訂履歴

各ライブラリの主要な修正箇所を記載しています。

以下の個別ライブラリについても参照ください。

バージョン名

MWSDKのバージョン名はリリース年と月を含めた MWSDK{YYYY}_{MM} となっています。UNOFFICIAL が付くものは、リリースのための包括的な検証作業を省略した適宜版となります。


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.
    • added TARGET_NAME_NO_VER_TWENET option to remove library version.

    • introduced _DISABLE_LTO make variable to force LTO settings even DISABLE_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 as JP, US or none for make a paramter
      • required to set TWE_LANG_MULTI_SUPPORTED in the project Makefile, like TWE_LANG_MULTI_SUPPORTED=US JP
      • if both TWE_LANG_PREF and TWE_LANG_MULTI_SUPPORTED, -DUSE_LANG_INTERACTIVE={LANG CODE} is 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 -Is 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() and vAHI_NtagOnWakeup_MW()to TWENETmwf.
  • TWENETcore 1.3.8

    • added vDebugInit_UART0() to hide legacy vfPrintf().
    • added ToCoNet_vDebugMsg_Force(const char* fmt, ...) to force debug messages. (note: this should be called after vDebugInit_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.
  • 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 from 60 to 56, for reservation blocks for MULTINONE apps where chosen app and cofinguration information is stored.
  • 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 call E_TWESTG_MULTINONE_CLEAR.
      • tweintarctive_walker.cpp, .hpp, termio.hを追加し、インタラクティブモードの設定情報や MULTINONE の格納アプリを参照、設定できるようにした。
      • bool_t TWESTG_vInit_tsFinal_Dynamic()を追加
      • added E_TWESTG_MULTINONE_CLEAR on E_TWESTG_CMD_OP_MUITINONE_CONTROL command.
    • added E_TWEINTCT_OP_GET_APPINFO, asking app to inform application configuration data by TWEINTRCT_cbu32GenericHandler() callback function.
    • renamed from SerCmdTimeout to TWESERCMD_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. 00113 , FFTT3) [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 and u8slot to TWEINTRCT_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 as TWESTG_tsElement::sValidate.d1 or d2, whic is used for validator TWE_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 key
      • E_TWEINRCT_CONFIG_SCREEN_NO_EXIT_BY_PULSPLUSPLUS – no exit from interactive mode by +++ keys
      • E_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 by TWEINTRCT_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.)
    • 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 on E_TWESTG_CMD_OP_MUITINONE_CONTROL command.
      • added Frims::clear_firm_id() to call E_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)
    • 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 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 flag sSerCmd_P3.bverbose is controlled by TWESERCMD_Plus3_u8Parse(), however the prevous code was not aware of it. so new flag is introduced psIntr->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 at config.u8AlwaysKeyReport to pass void key event (to check timeout, etc)
      • save tick every key input at SerCmdChat.
  • 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_SEGMENTS60から56に変更した

MWSDK2024_07G (2024/7/16)

ドキュメント修正のみ

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]

[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 を起点に以後の変更内容を記載します。

mwx - 0.1.3

twesettings - 0.2.3

TWENET C - 1.3.03 (L1303)