From af05b21daec5f45f6688cf0a7c095e48737f27b7 Mon Sep 17 00:00:00 2001 From: drowe67 Date: Mon, 9 Apr 2018 02:50:03 +0000 Subject: [PATCH] exposed CRC function so horus_api can use it git-svn-id: https://svn.code.sf.net/p/freetel/code@3456 01035d8c-6547-0410-b346-abe4f91aad63 --- codec2-dev/src/horus_l2.c | 7 +++---- codec2-dev/src/horus_l2.h | 3 +++ 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/codec2-dev/src/horus_l2.c b/codec2-dev/src/horus_l2.c index f3cdc73e..55fdc63a 100644 --- a/codec2-dev/src/horus_l2.c +++ b/codec2-dev/src/horus_l2.c @@ -70,7 +70,6 @@ static char uw[] = {'$','$'}; int32_t get_syndrome(int32_t pattern); void golay23_init(void); int golay23_decode(int received_codeword); -unsigned short gen_crc16(unsigned char* data_p, unsigned char length); void interleave(unsigned char *inout, int nbytes, int dir); void scramble(unsigned char *inout, int nbytes); @@ -785,7 +784,7 @@ int main(void) { /* all zeros is nastiest sequence for demod before scrambling */ memset(&input_payload, 0, nbytes); - input_payload.Checksum = gen_crc16((unsigned char*)&input_payload, nbytes-2); + input_payload.Checksum = horus_l2_gen_crc16((unsigned char*)&input_payload, nbytes-2); horus_l2_encode_tx_packet(tx, (unsigned char*)&input_payload, nbytes); @@ -846,7 +845,7 @@ int main(void) { assert(sizeof(h) == nbytes); memcpy(&h, output_payload, nbytes); - uint16_t crc_rx = gen_crc16(output_payload, nbytes-2); + uint16_t crc_rx = horus_l2_gen_crc16(output_payload, nbytes-2); char crc_str[80]; if (crc_rx == h.Checksum) { @@ -1163,7 +1162,7 @@ int golay23_count_errors(int recd_codeword, int corrected_codeword) // from http://stackoverflow.com/questions/10564491/function-to-calculate-a-crc16-checksum -unsigned short gen_crc16(unsigned char* data_p, unsigned char length){ +unsigned short horus_l2_gen_crc16(unsigned char* data_p, unsigned char length) { unsigned char x; unsigned short crc = 0xFFFF; diff --git a/codec2-dev/src/horus_l2.h b/codec2-dev/src/horus_l2.h index 7ded29ac..86a9d76e 100644 --- a/codec2-dev/src/horus_l2.h +++ b/codec2-dev/src/horus_l2.h @@ -12,6 +12,7 @@ int horus_l2_get_num_tx_data_bytes(int num_payload_data_bytes); /* returns number of output bytes in output_tx_data */ + int horus_l2_encode_tx_packet(unsigned char *output_tx_data, unsigned char *input_payload_data, int num_payload_data_bytes); @@ -20,4 +21,6 @@ void horus_l2_decode_rx_packet(unsigned char *output_payload_data, unsigned char *input_rx_data, int num_payload_data_bytes); +unsigned short horus_l2_gen_crc16(unsigned char* data_p, unsigned char length); + #endif -- 2.25.1