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