Encapsulate encode/decode test into function.

This commit is contained in:
Ed Gonzalez 2015-06-03 12:59:32 -05:00
parent d60f28031d
commit 81bb26dc15
4 changed files with 54 additions and 38 deletions

View file

@ -592,6 +592,10 @@ static void* _sched_waveform_thread(void* param)
void sched_waveform_Init(void)
{
_gmsk_demod = gmsk_createDemodulator();
_gmsk_mod = gmsk_createModulator();
pthread_rwlock_init(&_list_lock, NULL);
pthread_rwlock_wrlock(&_list_lock);
@ -609,43 +613,8 @@ void sched_waveform_Init(void)
fifo_param.sched_priority = 30;
pthread_setschedparam(_waveform_thread, SCHED_FIFO, &fifo_param);
_gmsk_demod = gmsk_createDemodulator();
_gmsk_mod = gmsk_createModulator();
//gmsk_testBitsAndEncodeDecode();
float test_buffer[160*2];
unsigned char test_coded[8] = {0xAA,0xAA,0xFF,0x00,0xFF,0x00,0xFF,0x00};
unsigned char output_bytes[8] = {0};
uint32 i = 0;
//
// BOOL bits[32] = {0};
// gmsk_bytesToBits(test_coded, bits, 32);
// gmsk_byteToBits(0xF0, bits, 8);
// output("0xF0 = ");
//
// for ( i = 0 ; i < 8; i++ ){
// output("%d ", bits[i]);
// }
// output("\n");
// unsigned char test[4] = {0xAA, 0xAA, 0xAA, 0xAA};
// gmsk_bytesToBits(test, bits, 32);
//
// for ( i = 0 ; i < 32/8 ; i++ ) {
// gmsk_bitsToByte(&bits[i*8], &output_bytes[i]);
// output("Byte = 0x%02X\n", output_bytes[i]);
// }
//
gmsk_encodeBuffer(_gmsk_mod, test_coded, 32*2, test_buffer, 160*2);
// FILE * dat = fopen("gmsk.dat", "w");
// for ( i = 0 ; i < 160*2 ; i++ ) {
// fprintf(dat, "%d %.12f\n", i, test_buffer[i]);
// //output("%.12f,", test_buffer[i]);
// }
// fclose(dat);
gmsk_decodeBuffer(_gmsk_demod, test_buffer, 160*2, output_bytes, 32*2);
exit(0);
}
void sched_waveformThreadExit()

View file

@ -400,3 +400,47 @@ void gmsk_destroyModulator(GMSK_MOD mod )
}
void gmsk_testBitsAndEncodeDecode(void)
{
GMSK_DEMOD _gmsk_demod = gmsk_createDemodulator();
GMSK_MOD _gmsk_mod = gmsk_createModulator();
float test_buffer[160*2];
unsigned char test_coded[8] = {0xAA,0xAA,0xFF,0x00,0xFF,0x00,0xFF,0x00};
unsigned char output_bytes[8] = {0};
uint32 i = 0;
BOOL bits[32] = {0};
gmsk_bytesToBits(test_coded, bits, 32);
gmsk_byteToBits(0xF0, bits, 8);
output("0xF0 = ");
for ( i = 0 ; i < 8; i++ ){
output("%d ", bits[i]);
}
output("\n");
unsigned char test[4] = {0xAA, 0xAA, 0xAA, 0xAA};
gmsk_bytesToBits(test, bits, 32);
for ( i = 0 ; i < 32/8 ; i++ ) {
gmsk_bitsToByte(&bits[i*8], &output_bytes[i]);
output("Byte = 0x%02X\n", output_bytes[i]);
}
//
gmsk_encodeBuffer(_gmsk_mod, test_coded, 32*2, test_buffer, 160*2);
FILE * dat = fopen("gmsk.dat", "w");
for ( i = 0 ; i < 160*2 ; i++ ) {
fprintf(dat, "%d %.12f\n", i, test_buffer[i]);
//output("%.12f,", test_buffer[i]);
}
fclose(dat);
gmsk_decodeBuffer(_gmsk_demod, test_buffer, 160*2, output_bytes, 32*2);
gmsk_destroyDemodulator(_gmsk_demod);
gmsk_destroyModulator(_gmsk_mod);
}

View file

@ -58,6 +58,9 @@ typedef struct _gmsk_mod
FIR_FILTER filter;
} gmsk_mod, * GMSK_MOD;
void gmsk_testBitsAndEncodeDecode(void);
void gmsk_bitsToByte(BOOL * bits, unsigned char * byte);
void gmsk_byteToBits(unsigned char byte, BOOL * bits, uint32 num_bits);
void gmsk_bytesToBits(unsigned char * bytes, BOOL * bits, uint32 num_bits);

View file

@ -326,7 +326,7 @@ int thumbDV_openSerial(const char * tty_name)
return -1;
}
//output("opened %s - fd = %d\n", tty_name, fd);
output("opened %s - fd = %d\n", tty_name, fd);
return fd;
}
@ -378,7 +378,7 @@ int thumbDV_processSerial(int serial_fd)
packet_type = buffer[3];
//dump("Serial data", buffer, respLen);
if ( packet_type == AMBE3000_CTRL_PKT_TYPE ) {
// dump("Serial data", buffer, respLen);
dump("Serial data", buffer, respLen);
} else if ( packet_type == AMBE3000_CHAN_PKT_TYPE ) {
desc = hal_BufferRequest(respLen, sizeof(unsigned char) );
memcpy(desc->buf_ptr, buffer, respLen);