T
T
MWSDK(TWELITE SDK)
MONO WIRELESS INC.
検索…
MWSDK
TWELITE SDK (MWSDK) マニュアル
はじめに
最新版の取得
TWELITE SDKの使用法
TWELIET NET API 解説
TWELITE NET API リファレンス
コールバック関数
TWELITE NET関数
中継ネット API
型 typedef, よく使うマクロ
構造体
TWELITE NET マクロ
ToCoNet_REG_MOD_ALL()
utils.h
ユーザ定義イベント処理関数
モジュール ライブラリ
PRSEV ライブラリ
グローバル変数
PANIC
HW API リファレンス
Utils リファレンス、他
GitBook
上で動作しています
utils.h
utils.h をインクルードすることで利用できるマクロを紹介します。
S_OCTET(x)
1バイトをメモリを書き込む。
1
uint8
*
q
=
&
sTx
.
au8Data
[
0
];
2
3
S_OCTET
(
0x12
);
4
S_BE_WORD
(
0x1234
);
5
S_BE_DWORD
(
0x12345678
);
Copied!
uint8 *q をローカル変数として宣言しておき、データを読み込みたい領域のポインタとしておく。代入演算子の評価後 q++ が実行される。
S_BE_WORD(x)
2バイトをメモリを書き込む。
1
uint8
*
q
=
&
sTx
.
au8Data
[
0
];
2
3
S_OCTET
(
0x12
);
4
S_BE_WORD
(
0x1234
);
5
S_BE_DWORD
(
0x12345678
);
Copied!
uint8 *q をローカル変数として宣言しておき、データを読み込みたい領域のポインタとしておく。代入演算子の評価後 q+=2 が実行される。
BE はビッグエンディアン、LE はリトルエンディアン。
S_BE_DWORD(x)
4バイトをメモリを書き込む。
1
uint8
*
q
=
&
sTx
.
au8Data
[
0
];
2
3
S_OCTET
(
0x12
);
4
S_BE_WORD
(
0x1234
);
5
S_BE_DWORD
(
0x12345678
);
Copied!
uint8 *q をローカル変数として宣言しておき、データを読み込みたい領域のポインタとしておく。代入演算子の評価後 q+=4 が実行される。
BE はビッグエンディアン、LE はリトルエンディアン。
G_OCTET()
1バイトメモリを読み込み uint8 型の変数に値を格納する。
1
uint8
*
p
=
&
sRx
.
au8Data
[
0
];
2
3
uint8 u8data1
=
OCTET
();
4
uint16 u16data2
=
G_BE_WORD
();
5
uint32 u32data3
=
G_BE_DWORD
();
Copied!
uint8 *p をローカル変数として宣言しておき、データを読み込みたい領域のポインタとしておく。=演算子の評価後 p++ が実行される。
G_BE_WORD()
2バイトメモリを読み込み uint16 型の変数に値を格納する。
1
uint8
*
p
=
&
sRx
.
au8Data
[
0
];
2
3
uint8 u8data1
=
OCTET
();
4
uint16 u16data2
=
G_BE_WORD
();
5
uint32 u32data3
=
G_BE_DWORD
();
Copied!
uint8 *p をローカル変数として宣言しておき、データを読み込みたい領域のポインタとしておく。=演算子の評価後 p+=2 が実行される。
BE はビッグエンディアン、LE はリトルエンディアン。
G_BE_DWORD()
1バイトメモリを読み込み uint8 型の変数に値を格納する。
1
uint8
*
p
=
&
sRx
.
au8Data
[
0
];
2
3
uint8 u8data1
=
OCTET
();
4
uint16 u16data2
=
G_BE_WORD
();
5
uint32 u32data3
=
G_BE_DWORD
();
Copied!
uint8 *p をローカル変数として宣言しておき、データを読み込みたい領域のポインタとしておく。=演算子の評価後 p+=4 が実行される。
BE はビッグエンディアン、LE はリトルエンディアン。
ENCODE_VOLT(x)
2000~3600 の値を 8bit 値に変換します。
1.95~2.80V は 5mV 刻み
2.81~3.65V は 10mV 刻み
1
// utils.h の定義
2
#
define
ENCODE_VOLT
(
m
)
\
3
(
m
<
1950
?
0
:
\
4
(
m
>
3650
?
255
:
\
5
(
m
<=
2802
?
((
m
-
1950
+
2
)
/
5
)
:
((
m
-
2800
-
5
)
/
10
+
171
))
))
6
7
...
8
uint16 u16Volt
=
2860
;
9
uint8 u8Volt_enc
=
ENCODE_VOLT
(
u16Volt
);
10
uint16 u16Volt_dec
=
DECODE_VOLT
(
u8Volt_Enc
);
Copied!
2000~2800 の値は 5 刻み、2800~は10 刻みで 8bit 値に割り当てます。
DECODE_VOLT(x)
ENCODE_VOLT() により得られた8bit値を元の値に戻します。
1.95~2.80V は 5mV 刻み
2.81~3.65V は 10mV 刻み
1
// utils.h の定義
2
#
define
DECODE_VOLT
(
i
)
\
3
(
i
<=
170
?
(
1950
+
i
*
5
)
:
(
2800
+
(
i
-
170
)
*
10
)
)
4
5
...
6
uint16 u16Volt
=
2860
;
7
uint8 u8Volt_enc
=
ENCODE_VOLT
(
u16Volt
);
8
uint16 u16Volt_dec
=
DECODE_VOLT
(
u8Volt_Enc
);
Copied!
2000~2800 の値は 5 刻み、2800~は10 刻みで 8bit 値に割り当てます。
vPortAsInput(c)
ポートcを入力に設定する
1
#
define
vPortAsInput
(
c
)
vAHI_DioSetDirection
(
1UL
<<
(
c
),
0
)
Copied!
vPortAsOutput(c)
ポートcを出力に設定する
1
#
define
vPortAsOutput
(
c
)
vAHI_DioSetDirection
(
0
,
1UL
<<
(
c
))
Copied!
vPortSetHi(c)
ポートcをHi状態にする
1
#
define
vPortSetHi
(
c
)
vAHI_DioSetOutput
(
1UL
<<
(
c
),
0
)
Copied!
vPortSetLo(c)
ポートcをLo状態にする
1
#
define
vPortSetLo
(
c
)
vAHI_DioSetOutput
(
0
,
1UL
<<
(
c
))
Copied!
vPortSet_TrueAsLo(c, s)
ポート c を s が TRUE なら Lo, FALSE なら Hi に設定する
1
#
define
vPortSet_TrueAsLo
(
c
,
s
)
vAHI_DioSetOutput
((
s
)
?
\
2
0
:
1UL
<<
(
c
),
s
?
1UL
<<
(
c
)
:
0
)
Copied!
bPortRead(c)
ポート c を読み出す。Loレベルなら TRUE が返る
1
#
define
bPortRead
(
c
)
((
u32AHI_DioReadInput
()
&
\
2
(
1UL
<<
(
c
)))
?
FALSE
:
TRUE
)
Copied!
u32PortReadBitmap()
ポート c を読み出す。Loレベルなら TRUE が返る。
1
#
define
u32PortReadBitmap
()
(
u32AHI_DioReadInput
())
Copied!
ビットマップの1がHi,0がLoとなります。
bPortCheckBitmap(bitmap, c)
読みだしたビットマップのポート c に対応するビットがLoレベルならTRUEを返す。
1
#
define
bPortCheckBitmap
(
bitmap
,
c
)
\
2
(
bitmap
&
(
1UL
<<
(
c
)))
?
FALSE
:
TRUE
)
Copied!
vPortDisablePullup(c)
ポート c のプルアップを停止する。
1
#
define
vPortDisablePullup
(
c
)
vAHI_DioSetPullup
(
0x0
,
1UL
<<
(
c
))
Copied!
_C
switch でスコープを定義したい場合 _C { … } と記述している。
1
#
define
_C
if
(
1
)
2
3
// for example
4
switch
(
c
)
{
5
case
1
:
6
_C
{
7
uint8 u8work
;
8
;
// work
9
}
break
;
10
default
:
11
}
Copied!
LB
改行コード (CRLF) 文字列です。
2バイトの文字列リテラルですので、
vPutChar
() では利用できません。
1
#
define
LB
"\r\n"
2
3
// for example
4
vfPrintf
(
&
sSerStream
,
"HELLO WORLD!"
LB
);
Copied!
前
ToCoNet_REG_MOD_ALL()
次
ユーザ定義イベント処理関数
最終更新
7mo ago
リンクのコピー
目次
S_OCTET(x)
S_BE_WORD(x)
S_BE_DWORD(x)
G_OCTET()
G_BE_WORD()
G_BE_DWORD()
ENCODE_VOLT(x)
DECODE_VOLT(x)
vPortAsInput(c)
vPortAsOutput(c)
vPortSetHi(c)
vPortSetLo(c)
vPortSet_TrueAsLo(c, s)
bPortRead(c)
u32PortReadBitmap()
bPortCheckBitmap(bitmap, c)
vPortDisablePullup(c)
_C
LB