rtl433  UNKNOWN
RTL-433 utility
schraeder.c File Reference

Schrader TPMS protocol. More...

Functions

static int schraeder_callback (r_device *decoder, bitbuffer_t *bitbuffer)
 Schrader TPMS decoder. More...
 
static int schrader_EG53MA4_callback (r_device *decoder, bitbuffer_t *bitbuffer)
 TPMS Model: Schrader Electronics EG53MA4. More...
 

Variables

static char * output_fields []
 
static char * output_fields_EG53MA4 []
 
r_device schraeder
 
r_device schrader_EG53MA4
 

Detailed Description

Schrader TPMS protocol.

Copyright (C) 2016 Benjamin Larsson and 2017 Christian W. Zuckschwerdt zany@.nosp@m.triq.nosp@m..net

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

Function Documentation

◆ schrader_EG53MA4_callback()

static int schrader_EG53MA4_callback ( r_device decoder,
bitbuffer_t bitbuffer 
)
static

TPMS Model: Schrader Electronics EG53MA4.

Contributed by: Leonardo Hamada (hkazu).

Probable packet payload:

SSSSSSSSSS ???????? IIIIII TT PP CC
  • S: sync
  • ?: might contain the preamble, status and battery flags
  • I: id (24 bits), could extend into flag bits (?)
  • P: pressure, 25 mbar per bit
  • T: temperature, degrees Fahrenheit
  • C: checksum, sum of byte data modulo 256

References bitbuffer_extract_bytes(), bitbuffer::bits_per_row, DATA_DOUBLE, DATA_FORMAT, data_make(), DATA_STRING, and decoder_output_data().

◆ schraeder_callback()

static int schraeder_callback ( r_device decoder,
bitbuffer_t bitbuffer 
)
static

Schrader TPMS decoder.

Packet payload: 1 sync nibble and 8 bytes data, 17 nibbles:

0 12 34 56 78 9A BC DE F0
7 f6 70 3a 38 b2 00 49 49
S PF FI II II II PP TT CC
  • S: sync
  • P: preamble (0xf)
  • F: flags
  • I: id (28 bit)
  • P: pressure from 0 bar to 6.375 bar, resolution of 25 mbar/hectopascal per bit
  • T: temperature from -50 C to 205 C (1 bit = 1 temperature count 1 C)
  • C: CRC8 from nibble 1 to E

References bitbuffer_extract_bytes(), bitbuffer::bits_per_row, crc8(), DATA_DOUBLE, DATA_FORMAT, data_make(), DATA_STRING, and decoder_output_data().

Variable Documentation

◆ output_fields

char* output_fields[]
static
Initial value:
= {
"model",
"type",
"id",
"flags",
"pressure_kPa",
"temperature_C",
"mic",
NULL
}

◆ output_fields_EG53MA4

char* output_fields_EG53MA4[]
static
Initial value:
= {
"model",
"type",
"id",
"flags",
"pressure_kPa",
"temperature_F",
"mic",
NULL
}

◆ schrader_EG53MA4

r_device schrader_EG53MA4
Initial value:
= {
.name = "Schrader TPMS EG53MA4",
.short_width = 123,
.long_width = 0,
.reset_limit = 236,
.disabled = 0,
}
Manchester encoding. Hardcoded zerobit. Rising Edge = 0, Falling edge = 1.
Definition: r_device.h:10
static char * output_fields_EG53MA4[]
Definition: schraeder.c:149
static int schrader_EG53MA4_callback(r_device *decoder, bitbuffer_t *bitbuffer)
TPMS Model: Schrader Electronics EG53MA4.
Definition: schraeder.c:92

◆ schraeder

r_device schraeder
Initial value:
= {
.name = "Schrader TPMS",
.short_width = 120,
.long_width = 0,
.reset_limit = 480,
.decode_fn = &schraeder_callback,
.disabled = 0,
.fields = output_fields,
}
static char * output_fields[]
Definition: schraeder.c:138
Manchester encoding. Hardcoded zerobit. Rising Edge = 0, Falling edge = 1.
Definition: r_device.h:10
static int schraeder_callback(r_device *decoder, bitbuffer_t *bitbuffer)
Schrader TPMS decoder.
Definition: schraeder.c:33