セクションの複数ページをまとめています。 印刷またはPDF形式で保存...

もとのページに戻る

2024-11-14 現在

TWELITE Wings API / MWings for 32-bit Arduinos

32ビット Arduino ボードのための MWings
32ビット Arduino ボードのための TWELITE Wings API です。

1 - TWELITE Wings API / MWings for 32-bit Arduinos

最新版
32ビット Arduino ボードのための TWELITE Wings API です。

1.1 - データ型と手続きの一覧

32ビット Arduino ボードのための MWings 個別のデータ型と手続きの一覧
個別のデータ型と手続きの一覧です。クラスの一覧はこちら

構造体

BarePacket

親機が子機から受信したパケットの電文情報から得た素のデータを格納します。

MWings_Common.h

データ

名称内容
uint8_t*u8Payloadバイナリ変換したペイロードデータ(:とチェックサム、CRLFを除く)
uint16_tu16PayloadSize上記データのバイト数
uint8_tu8Checksum上記データのチェックサム

手続き

型と名称内容
uint8_t* u8From(int)指定位置以降のペイロードデータを取得する
uint8_t u8At(int)指定位置のペイロードデータを8ビット非不整数として取得する
int8_t i8At(int)指定位置のペイロードデータを8ビット整数として取得する
uint16_t u16At(int)指定位置のペイロードデータを16ビット非不整数として取得する
int16_t i16At(int)指定位置のペイロードデータを16ビット整数として取得する
uint32_t u32At(int)指定位置のペイロードデータを32ビット非不整数として取得する
int32_t i32At(int)指定位置のペイロードデータを32ビット整数として取得する

mwings::ParsedPacketBase

親機が子機から受信したパース済みデータを格納する構造体の抽象型です。

MWings_Common.h

データ

名称内容
uint32_tu32SourceSerialId送信元のシリアルID
uint8_tu8SourceLogicalId送信元の論理デバイスID
uint16_tu16SequenceNumberシーケンス番号
uint8_tu8LqiLQI
uint16_tu16SupplyVoltage電源電圧 (mV)

ParsedAppTwelitePacket

mwings::ParsedPacketBase から派生

親機が超簡単!標準アプリの子機から受信したデータを格納する構造体です。

AppTwelitePacketParser.h

データ

名称内容
uint8_tu8DestinationLogicalId送信先の論理デバイスID
uint8_tu8RelayCount中継回数
boolbPeriodic定期送信パケットならtrue
bool[4]bDiChanged各 DI1-4 が変化したならtrue
bool[4]bDiState各 DI1-4 が Low 状態ならtrue
uint16_t[4]u16AiVoltage各 AI1-4 の入力電圧 (mV)

ParsedAppIoPacket

mwings::ParsedPacketBase から派生

親機がリモコンアプリの子機から受信したデータを格納する構造体です。

AppIoPacketParser.h

データ

名称内容
uint8_tu8RelayCount中継回数
bool[12]bDiState各 DI が Low 状態ならtrue
bool[12]bDiValid各 DI が有効ならtrue
bool[12]bDiInterrupt各 DI が割り込みにより変化したならtrue

ParsedAppAriaPacket

mwings::ParsedPacketBase から派生

親機がアリアアプリの子機(TWELITE ARIA モード)から受信したデータを格納する構造体です。

AppAriaPacketParser.h

データ

名称内容
int16_ti16Temp100x100倍された温度(摂氏)
uint16_tu16Humid100x100倍された相対湿度 (%)
uint8_tu8MagnetState磁気イベントID
boolbMagnetStateChanged磁気センサの状態が変化したならtrue
磁気イベントID
ID内容
0x00近くに磁石がない
0x01N極が近くにある
0x02S極が近くにある

ParsedAppCuePacket

mwings::ParsedPacketBase から派生

親機がキューアプリの子機(TWELITE CUE モード)から受信したデータを格納する構造体です。

AppCuePacketParser.h

データ

名称内容
int16_t[10]i16SamplesX各サンプルの X 軸加速度 (mG)
int16_t[10]i16SamplesY各サンプルの Y 軸加速度 (mG)
int16_t[10]i16SamplesZ各サンプルの Z 軸加速度 (mG)
uint8_tu8SampleCountサンプル数
boolbHasAccelEvent加速度イベントがあるならtrue
uint8_tu8AccelEvent加速度イベントID
uint8_tu8MagnetState磁気イベントID
boolbMagnetStateChanged磁気センサの状態が変化したならtrue
加速度イベントID
ID内容
0x01~0x06サイコロ
0x08シェイク
0x10ムーブ
磁気イベントID
ID内容
0x00近くに磁石がない
0x01N極が近くにある
0x02S極が近くにある

ParsedAppPalAmbPacket

mwings::ParsedPacketBase から派生

親機がパルアプリの子機(環境センサーパル)から受信したデータを格納する構造体です。

AppPalAmbPacketParser.h

データ

名称内容
uint16_tu16Ai1VoltageAI1 の入力電圧 (mV)
int16_ti16Temp100x100倍された温度(摂氏)
uint16_tu16Humid100x100倍された相対湿度 (%)
uint32_tu32Illuminance照度(ルクス)

ParsedAppPalMotPacket

mwings::ParsedPacketBase から派生

親機がパルアプリの子機(動作センサーパル)から受信したデータを格納する構造体です。

AppPalMotPacketParser.h

データ

名称内容
uint16_tu16Ai1VoltageAI1 の入力電圧 (mV)
int16_t[16]i16SamplesX各サンプルの X 軸加速度 (mG)
int16_t[16]i16SamplesY各サンプルの Y 軸加速度 (mG)
int16_t[16]i16SamplesZ各サンプルの Z 軸加速度 (mG)
uint8_tu8SampleCountサンプル数
uint16_tu16SamplingFrequencyサンプリング周波数 (Hz)

ParsedAppPalOpenClosePacket

mwings::ParsedPacketBase から派生

親機がパルアプリの子機(開閉センサーパル)から受信したデータを格納する構造体です。

AppPalOpenClosePacketParser.h

データ

名称内容
uint16_tu16Ai1VoltageAI1 の入力電圧 (mV)
uint8_tu8MagnetState磁気イベントID
boolbMagnetStateChanged磁気センサの状態が変化したならtrue
磁気イベントID
ID内容
0x00近くに磁石がない
0x01N極が近くにある
0x02S極が近くにある

ParsedAppUartAsciiPacket

mwings::ParsedPacketBase から派生

親機がシリアル通信アプリの子機(Aモード)から受信したデータ(簡易形式)を格納する構造体です。

AppUartAsciiPacketParser.h

データ

名称内容
uint8_tu8CommandIdコマンド種別(応答ID)
uint8_t*u8Dataデータ
uint16_tu16DataSizeデータ長

ParsedAppUartAsciiExtendedPacket

mwings::ParsedPacketBase から派生

親機がシリアル通信アプリの子機(Aモード)から受信したデータ(拡張形式)を格納する構造体です。

AppUartAsciiExtendedPacketParser.h

データ

名称内容
uint32_tu32DestinationSerialId送信先のシリアルID
uint8_tu8CommandIdコマンド種別(応答ID)
uint8_t*u8Dataデータ
uint16_tu16DataSizeデータ長

ParsedActPacket

mwings::ParsedPacketBase から派生

親機がactの子機から受信したデータを格納する構造体です。

ActPacketParser.h

データ

名称内容
uint8_tu8CommandIdコマンド種別(応答ID)
uint8_t*u8Dataデータ
uint16_tu16DataSizeデータ長

mwings::CommandBase

親機から子機に送信するコマンドデータを格納する構造体の抽象型です。

MWings_Common.h

データ

名称内容
uint8_tu8DestinationLogicalId送信先の論理デバイスID

手続き

型と名称内容
bool isValid()データが正常ならtrueを返す(純粋仮想関数)

AppTweliteCommand

mwings::CommandBase から派生

親機から超簡単!標準アプリの子機へ送信するコマンドデータを格納する構造体です。

AppTweliteCommandSerializer.h

データ

名称内容
bool[4]bDiToChange各 DO1-4 の状態を変更する場合はtrue
bool[4]bDiState各 DO1-4 を Low 状態にする場合はtrue
bool[4]bPwmToChange各 PWM1-4 の状態を変更する場合はtrue
uint16_t[4]u16PwmDuty各 PWM1-4 のデューティ比 (0-1024)

AppIoCommand

mwings::CommandBase から派生

親機から超簡単!標準アプリの子機へ送信するコマンドデータを格納する構造体です。

AppIoCommandSerializer.h

データ

名称内容
bool[12]bDiToChange各 O1-12 の状態を変更する場合はtrue
bool[12]bDiState各 O1-12 を Low 状態にする場合はtrue

AppPalNoticeCommand

mwings::CommandBase から派生

親機からパルアプリ(通知パル)の子機へ送信するコマンドデータを格納する構造体です。

AppPalNoticeCommandSerializer.h

データ

名称内容
AppPalNoticeColoreColor点灯色
AppPalNoticeBlinkSpeedeBlinkSpeed点滅速度
uint8_tu8Brightness明るさ (0-15)
uint16_tu16DurationInSec点灯時間(秒)

AppPalNoticeDetailedCommand

mwings::CommandBase から派生

親機からパルアプリ(通知パル)の子機へ送信するコマンドデータを格納する構造体です(詳細形式)。

AppPalNoticeDetailedCommandSerializer.h

データ

名称内容
AppPalNoticeRGBWColorsRGBWColor点灯色 (RGBW)
uint8_tu8BlinkDutyPercentage点灯時間の割合 (%)
floatfBlinkPeriodInSec点滅周期(秒)
uint16_tu16DurationInSec点灯時間(秒)

AppPalNoticeEventCommand

mwings::CommandBase から派生

親機からパルアプリ(通知パル)の子機へ送信するコマンドデータ(詳細形式)を格納する構造体です。

AppPalNoticeEventCommandSerializer.h

データ

名称内容
uint8_tu8EventIdイベントID (0x00-0x10)

AppUartAsciiCommand

mwings::CommandBase から派生

親機からシリアル通信アプリ(Aモード)の子機へ送信するコマンドデータ(簡易形式)を格納する構造体です。

AppUartAsciiCommand.h

データ

名称内容
uint8_tu8CommandIdコマンド種別(応答ID)
uint8_t*u8Dataデータ
uint16_tu16DataSizeデータ長

AppPalNoticeRGBWColor

AppPalNoticeDetailedCommand で使用する点灯色(RGBW)を定義した構造体です。

AppPalNoticeDetailedCommandSerializer.h

データ

名称内容
uint8_tredR (0-15)
uint8_tgreenG (0-15)
uint8_tblueB (0-15)
uint8_twhiteW (0-15)

手続き

型と名称内容
bool isValid()データが正常ならtrueを返す
uint16_t u16()LSB から RGBW の順に4ビットずつ並べた16ビット非不整数を返す

列挙型

AppPalNoticeColor

uint8_t ベースの enum class ?

AppPalNoticeCommand で使用する点灯色を定義した列挙型です。

AppPalNoticeCommandSerializer.h

識別子内容
AppPalNoticeColor::RED0
AppPalNoticeColor::GREEN1
AppPalNoticeColor::BLUE2
AppPalNoticeColor::YELLOW3黄色
AppPalNoticeColor::PURPLE4
AppPalNoticeColor::LIGHT_BLUE5水色
AppPalNoticeColor::WHITE6
AppPalNoticeColor::WARM_WHITE7暖かい白

AppPalNoticeBlinkSpeed

uint8_t ベースの enum class

AppPalNoticeCommand で使用する点滅速度を定義した列挙型です。

AppPalNoticeCommandSerializer.h

識別子内容
AppPalNoticeBlinkSpeed::ALWAYS_ON0常時点灯
AppPalNoticeBlinkSpeed::SLOW1おちついた点滅
AppPalNoticeBlinkSpeed::MEDIUM2ほどほどの点滅
AppPalNoticeBlinkSpeed::FAST3せわしない点滅

その他のデータ型

手続き

GetAppTweliteSerializedCommandPayloadSize()

constexpr 関数 ?

AppTweliteCommand をシリアライズしたあとの固定長データのペイロードサイズを返す関数です。

AppTweliteCommandSerializer.h

型と名称内容
int GetAppTweliteSerializedCommandPayloadSize()バイト数を返します

GetAppAppPalNoticeSerializedCommandPayloadSize()

constexpr 関数

AppPalNoticeCommand をシリアライズしたあとの固定長データのペイロードサイズを返す関数です。

AppPalNoticeCommandSerializer.h

型と名称内容
int GetAppPalNoticeSerializedCommandPayloadSize()バイト数を返します

GetAppAppPalNoticeDetailedSerializedCommandPayloadSize()

constexpr 関数

AppPalNoticeDetailedCommand をシリアライズしたあとの固定長データのペイロードサイズを返す関数です。

AppPalNoticeDetailedCommandSerializer.h

型と名称内容
int GetAppPalNoticeDetailedSerializedCommandPayloadSize()バイト数を返します

GetAppAppPalNoticeEventSerializedCommandPayloadSize()

constexpr 関数

AppPalNoticeEventCommand をシリアライズしたあとの固定長データのペイロードサイズを返す関数です。

AppPalNoticeEventCommandSerializer.h

型と名称内容
int GetAppPalNoticeEventSerializedCommandPayloadSize()バイト数を返します

1.2 - クラスの一覧

32ビット Arduino ボードのための MWings クラスの一覧
クラスの一覧です。

1.2.1 - mwings::MWings クラス

32ビット Arduino ボードのための MWings メインクラス
mwings::MWings クラスの解説です。

コンストラクタ

MWings()

コンストラクタです。内部変数を初期化します。

MWings()

MWings.h

引数

なし

デストラクタ

~MWings()

デストラクタです。確保したバッファを開放します。

~MWings()

公開メンバ関数

begin()

TWELITE を初期化し、指定した設定で起動します。

    bool begin(HardwareSerial& serial,
                   const int indicatorPin = -1,
                   const int resetPin = -1,
                   const int programPin = -1,
                   const uint8_t channel = 18,
                   const uint32_t appId = 0x67720102,
                   const uint8_t retryCount = 2,
                   const uint8_t txPower = 3,
                   const int rxBufferSize = 1024,
                   const int timeout = 100,
                   HardwareSerial* debugSerial = nullptr);

MWings.cpp

引数

名称内容省略備考
HardwareSerial&serialTWELITE と通信するポート
intindicatorPinステータスLEDを接続したピン🆗-1で省略可
intresetPinTWELITE の RST ピン🆗-1で省略可
intprogramPinTWELITE の PRGピン🆗-1で省略可
uint8_tchannel周波数チャネル🆗省略時は0x67720102
uint32_tappIdアプリケーション ID🆗省略時は18
uint8_tretryCount再送回数🆗0-9
uint8_ttxPower送信出力🆗0-3
intrxBufferSizeパケット受信バッファのサイズ🆗バイナリベース
inttimeout各パケットのタイムアウト時間🆗受信完了まで
HardwareSerial*debugSerialデバッグ出力ポート🆗

戻り値

内容備考
booltrue成功
falseエラー

end()

すべての内部変数を初期化します。

inline void end()

MWings.h

引数

なし

戻り値

なし

update()

シリアル受信バッファを読み出し、親機から送られた ModBus ASCII 形式のデータをパースします。

void update();

MWings.h

引数

なし

戻り値

なし

on() <BarePacket>

すべての子機から送られたデータに対して行う処理を登録します。

inline void on(void (*callback)(const BarePacket& packet))

MWings.h

引数

名称内容省略備考
void (*)(BarePacket&)callbackイベントハンドラ

戻り値

なし

on() <ParsedAppTwelitePacket>

超簡単!標準アプリの子機から送られたデータに対して行う処理を登録します。

inline void on(void (*callback)(const ParsedAppTwelitePacket& packet))

MWings.h

引数

名称内容省略備考
void (*)(ParsedAppTwelitePacket&)callbackイベントハンドラ

戻り値

なし

on() <ParsedAppIoPacket>

リモコンアプリの子機から送られたデータに対して行う処理を登録します。

inline void on(void (*callback)(const ParsedAppIoPacket& packet))

MWings.h

引数

名称内容省略備考
void (*)(ParsedAppIoPacket&)callbackイベントハンドラ

戻り値

なし

on() <ParsedAppAriaPacket>

アリアアプリ(TWELITE ARIA モード)の子機から送られたデータに対して行う処理を登録します。

inline void on(void (*callback)(const ParsedAppAriaPacket& packet))

MWings.h

引数

名称内容省略備考
void (*)(ParsedAppAriaPacket&)callbackイベントハンドラ

戻り値

なし

on() <ParsedAppCuePacket>

キューアプリ(TWELITE CUE モード)の子機から送られたデータに対して行う処理を登録します。

inline void on(void (*callback)(const ParsedAppCuePacket& packet))

MWings.h

引数

名称内容省略備考
void (*)(ParsedAppCuePacket&)callbackイベントハンドラ

戻り値

なし

on() <ParsedAppPalOpenClosePacket>

パルアプリ(開閉センサーパル)の子機から送られたデータに対して行う処理を登録します。

inline void on(void (*callback)(const ParsedAppPalOpenClosePacket& packet))

MWings.h

引数

名称内容省略備考
void (*)(ParsedAppPalOpenClosePacket&)callbackイベントハンドラ

戻り値

なし

on() <ParsedAppPalAmbPacket>

パルアプリ(環境センサーパル)の子機から送られたデータに対して行う処理を登録します。

inline void on(void (*callback)(const ParsedAppPalAmbPacket& packet))

MWings.h

引数

名称内容省略備考
void (*)(ParsedAppPalAmbPacket&)callbackイベントハンドラ

戻り値

なし

on() <ParsedAppPalMotPacket>

パルアプリ(動作センサーパル)の子機から送られたデータに対して行う処理を登録します。

inline void on(void (*callback)(const ParsedAppPalMotPacket& packet))

MWings.h

引数

名称内容省略備考
void (*)(ParsedAppPalMotPacket&)callbackイベントハンドラ

戻り値

なし

on() <ParsedAppUartAsciiPacket>

シリアル通信アプリ(Aモード)の子機から送られたデータ(簡易形式)に対して行う処理を登録します。

inline void on(void (*callback)(const ParsedAppUartAsciiPacket& packet))

MWings.h

引数

名称内容省略備考
void (*)(ParsedAppUartAsciiPacket&)callbackイベントハンドラ

戻り値

なし

on() <ParsedAppUartAsciiExtendedPacket>

シリアル通信アプリ(Aモード)の子機から送られたデータ(拡張形式)に対して行う処理を登録します。

inline void on(void (*callback)(const ParsedAppUartAsciiExtendedPacket& packet))

MWings.h

引数

名称内容省略備考
void (*)(ParsedAppUartAsciiExtendedPacket&)callbackイベントハンドラ

戻り値

なし

on() <ParsedActPacket>

act の子機から送られたデータに対して行う処理を登録します。

inline void on(void (*callback)(const ParsedActPacket& packet))

MWings.h

引数

名称内容省略備考
void (*)(ParsedActPacket&)callbackイベントハンドラ

戻り値

なし

send() <uint8_t*, int, uint8_t>

任意のコマンド(ModBus ASCII 形式)を親機に送信します。

inline bool send(const uint8_t* const payload,
                     const int payloadSize,
                     const uint8_t checksum)

MWings.h

引数

名称内容省略備考
uint8_t*payloadペイロード:と LRC の間
intpayloadSizeペイロードのサイズ
uint8_tchecksumチェックサムペイロードの LRC

戻り値

内容備考
booltrue成功
falseエラー

send() <uint8_t*, int>

任意のコマンド(ModBus ASCII 形式)を親機に送信します(チェックサム自動付与)。

inline bool send(const uint8_t* const payload,
                     const int payloadSize)

MWings.h

引数

名称内容省略備考
uint8_t*payloadペイロード:と LRC の間
intpayloadSizeペイロードのサイズ

戻り値

内容備考
booltrue成功
falseエラー

send() <uint8_t, uint8_t, uint8_t* int, uint8_t>

任意のコマンド(ModBus ASCII 形式)を親機に送信します。

inline bool send(const uint8_t logicalId,
                     const uint8_t commandId,
                     const uint8_t* const payload,
                     const int payloadSize,
                     const uint8_t checksum)

MWings.h

引数

名称内容省略備考
uint8_tlogicalId宛先の論理デバイス ID
uint8_tcommandIdコマンド種別
uint8_t*payloadペイロード:と LRC の間
intpayloadSizeペイロードのサイズ
uint8_tchecksumチェックサムペイロードの LRC

戻り値

内容備考
booltrue成功
falseエラー

send() <uint8_t, uint8_t, uint8_t* int>

任意のコマンド(ModBus ASCII 形式)を親機に送信します(チェックサム自動付与)。

inline bool send(const uint8_t logicalId,
                     const uint8_t commandId,
                     const uint8_t* const payload,
                     const int payloadSize)

MWings.h

引数

名称内容省略備考
uint8_tlogicalId宛先の論理デバイス ID
uint8_tcommandIdコマンド種別
uint8_t*payloadペイロード:と LRC の間
intpayloadSizeペイロードのサイズ

戻り値

内容備考
booltrue成功
falseエラー

send() <AppTweliteCommand>

超簡単!標準アプリの端末を操作するためのコマンドを親機に送信します。

inline bool send(AppTweliteCommand& command)

MWings.h

引数

名称内容省略備考
AppTweliteCommandcommandコマンドデータ

戻り値

内容備考
booltrue成功
falseエラー

send() <AppIoCommand>

リモコンアプリの端末を操作するためのコマンドを親機に送信します。

inline bool send(AppIoCommand& command)

MWings.h

引数

名称内容省略備考
AppIoCommandcommandコマンドデータ

戻り値

内容備考
booltrue成功
falseエラー

send() <AppPalNoticeCommand>

パルアプリ(通知パル)の端末を操作するためのコマンドを親機に送信します。

inline bool send(AppPalNoticeCommand& command)

MWings.h

引数

名称内容省略備考
AppPalNoticeCommandcommandコマンドデータ

戻り値

内容備考
booltrue成功
falseエラー

send() <AppPalNoticeDetailedCommand>

パルアプリ(通知パル)の端末を操作するためのコマンド(詳細形式)を親機に送信します。

inline bool send(AppPalNoticeDetailedCommand& command)

MWings.h

引数

名称内容省略備考
AppPalNoticeDetailedCommandcommandコマンドデータ

戻り値

内容備考
booltrue成功
falseエラー

send() <AppPalNoticeEventCommand>

パルアプリ(通知パル)の端末を操作するためのコマンド(イベント)を親機に送信します。

inline bool send(AppPalNoticeEventCommand& command)

MWings.h

引数

名称内容省略備考
AppPalNoticeEventCommandcommandコマンドデータ

戻り値

内容備考
booltrue成功
falseエラー

send() <AppPalUartAsciiCommand>

シリアル通信アプリ(Aモード)の端末を操作するためのコマンド(簡易形式)を親機に送信します。

inline bool send(AppPalUartAsciiCommand& command)

MWings.h

引数

名称内容省略備考
AppPalUartAsciiCommandcommandコマンドデータ

戻り値

内容備考
booltrue成功
falseエラー