PALセンサー共通データ
PALの各センサーのデータ構造体はすべてPalBaseを継承します。センサーデータの格納状況u32StoredMaskとモジュール電源電圧u16Voltの情報が含まれます。
struct PalBase {
uint32_t u32StoredMask;
uint16_t u16Volt;
};派生構造体に定義されるSTORE_COMP_MASKとu32StoreMaskが一致すれば、全てのセンサーのデータが適切に解釈され、格納されていることになります。
動作センサーパル(MOT)のセンサーデータ
struct PalMot : public PalBase {
const uint8_t U8VARS_CT = 17; // センサー数
const uint32_t STORE_COMP_MASK = 3; // 電圧と加速度サンプル1あればコンプとする
uint8_t u8samples; // 格納サンプル数
int16_t i16X[16]; // X軸 (ミリG)
int16_t i16Y[16]; // Y軸
int16_t i16Z[16]; // Z軸
};※ 各サンプルの連続性を確認するには、パケットのシーケンス番号の抜けが無いことを確認してください。
環境センサーパル(AMB)のセンサーデータ
struct PalAmb : public PalBase {
const uint8_t U8VARS_CT = 4; // センサー数
const uint32_t STORE_COMP_MASK = (1 << U8VARS_CT) - 1; // 全コンプマスク
int16_t i16Temp; // 温度 (x100)
uint16_t u16Humd; // 湿度 (x100 %)
uint32_t u32Lumi; // 照度 (lux相当)
};開閉センサーパル(MAG)のセンサーデータ
struct PalMag : public PalBase {
const uint8_t U8VARS_CT = 2; // センサー数
const uint32_t STORE_COMP_MASK = (1 << U8VARS_CT) - 1; // 全コンプのマスク
uint8_t u8MagStat; // 開閉状況 (0:磁石が遠い, 1/2:磁石検出)
uint8_t bRegularTransmit; // 定期送信の時に 1, 磁石検出では 0
};