rtl433  UNKNOWN
RTL-433 utility
nexus.c File Reference

Functions

int rubicson_crc_check (bitrow_t *bb)
 
static int nexus_callback (r_device *decoder, bitbuffer_t *bitbuffer)
 

Variables

static char * output_fields []
 
r_device nexus
 

Function Documentation

◆ nexus_callback()

static int nexus_callback ( r_device decoder,
bitbuffer_t bitbuffer 
)
static

The nexus protocol will trigger on rubicson data, so calculate the rubicson crc and make sure it doesn't match. By guesstimate it should generate a correct crc 1/255% of the times. So less then 0.5% which should be acceptable.

References bitbuffer::bb, bitbuffer_find_repeated_row(), bitbuffer_print(), bitbuffer::bits_per_row, DATA_DOUBLE, DATA_FORMAT, DATA_INT, data_make(), DATA_STRING, decoder_output_data(), rubicson_crc_check(), and r_device::verbose.

◆ rubicson_crc_check()

int rubicson_crc_check ( bitrow_t bb)

Referenced by nexus_callback().

Variable Documentation

◆ nexus

r_device nexus
Initial value:
= {
.name = "Nexus Temperature & Humidity Sensor",
.modulation = OOK_PULSE_PPM,
.short_width = 1000,
.long_width = 2000,
.gap_limit = 3000,
.reset_limit = 5000,
.decode_fn = &nexus_callback,
.disabled = 0,
.fields = output_fields
}
static int nexus_callback(r_device *decoder, bitbuffer_t *bitbuffer)
Definition: nexus.c:27
Pulse Position Modulation. Short gap = 0, Long = 1.
Definition: r_device.h:12
static char * output_fields[]
Definition: nexus.c:104

◆ output_fields

char* output_fields[]
static
Initial value:
= {
"model",
"id",
"channel",
"battery",
"temperature_C",
"humidity",
NULL
}