kopia lustrzana https://github.com/fsphil/hadie
Fill empty parts of packets with random data
rodzic
9ae89d153e
commit
429b3b4cfc
13
ssdv.c
13
ssdv.c
|
@ -335,6 +335,13 @@ static char ssdv_process(ssdv_t *s)
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
|
static void ssdv_memset_prng(uint8_t *s, size_t n)
|
||||||
|
{
|
||||||
|
/* A very simple PRNG for noise whitening */
|
||||||
|
uint8_t l = 0x00;
|
||||||
|
for(; n > 0; n--) *(s++) = (l = l * 245 + 45);
|
||||||
|
}
|
||||||
|
|
||||||
static char ssdv_have_marker(ssdv_t *s)
|
static char ssdv_have_marker(ssdv_t *s)
|
||||||
{
|
{
|
||||||
switch(s->marker)
|
switch(s->marker)
|
||||||
|
@ -418,9 +425,6 @@ char ssdv_enc_set_buffer(ssdv_t *s, uint8_t *buffer)
|
||||||
s->outp = buffer + SSDV_PKT_SIZE_HEADER;
|
s->outp = buffer + SSDV_PKT_SIZE_HEADER;
|
||||||
s->out_len = SSDV_PKT_SIZE_PAYLOAD;
|
s->out_len = SSDV_PKT_SIZE_PAYLOAD;
|
||||||
|
|
||||||
/* Zero the payload memory */
|
|
||||||
memset(s->out, 0, SSDV_PKT_SIZE);
|
|
||||||
|
|
||||||
/* Flush the output bits */
|
/* Flush the output bits */
|
||||||
ssdv_outbits(s, 0, 0);
|
ssdv_outbits(s, 0, 0);
|
||||||
|
|
||||||
|
@ -527,6 +531,9 @@ char ssdv_enc_get_packet(ssdv_t *s)
|
||||||
s->out[9] = mcu_id >> 8; /* MCU ID MSB */
|
s->out[9] = mcu_id >> 8; /* MCU ID MSB */
|
||||||
s->out[10] = mcu_id & 0xFF; /* MCU ID LSB */
|
s->out[10] = mcu_id & 0xFF; /* MCU ID LSB */
|
||||||
|
|
||||||
|
/* Fill any remaining bytes with noise */
|
||||||
|
if(s->out_len > 0) ssdv_memset_prng(s->outp, s->out_len);
|
||||||
|
|
||||||
/* Generate the RS codes */
|
/* Generate the RS codes */
|
||||||
encode_rs_8(&s->out[1], &s->out[SSDV_PKT_SIZE - SSDV_PKT_SIZE_RSCODES], 0);
|
encode_rs_8(&s->out[1], &s->out[SSDV_PKT_SIZE - SSDV_PKT_SIZE_RSCODES], 0);
|
||||||
|
|
||||||
|
|
Ładowanie…
Reference in New Issue