diff --git a/DSP_API/SmartSDR_Interface/sched_waveform.c b/DSP_API/SmartSDR_Interface/sched_waveform.c index 3675b55..b8df951 100644 --- a/DSP_API/SmartSDR_Interface/sched_waveform.c +++ b/DSP_API/SmartSDR_Interface/sched_waveform.c @@ -343,6 +343,12 @@ void sched_waveform_setEndOfTX( BOOL end_of_transmission ) { _end_of_transmission = TRUE; } +void sched_waveform_setDSTARSlice( uint32 slice ) +{ + if ( _dstar != NULL ) { + _dstar->slice = slice; + } +} static void * _sched_waveform_thread( void * param ) { int nout; diff --git a/DSP_API/SmartSDR_Interface/sched_waveform.h b/DSP_API/SmartSDR_Interface/sched_waveform.h index adb614f..95c0d08 100644 --- a/DSP_API/SmartSDR_Interface/sched_waveform.h +++ b/DSP_API/SmartSDR_Interface/sched_waveform.h @@ -50,4 +50,5 @@ void sched_waveform_setOwnCall2(uint32 slice , const char * owncall2 ); void sched_waveform_sendStatus(uint32 slice); void sched_waveform_setFD(int fd); void sched_waveform_setEndOfTX(BOOL end_of_transmission); +void sched_waveform_setDSTARSlice( uint32 slice ); #endif /* SCHED_WAVEFORM_H_ */ diff --git a/DSP_API/SmartSDR_Interface/status_processor.c b/DSP_API/SmartSDR_Interface/status_processor.c index 62d63e9..c072849 100644 --- a/DSP_API/SmartSDR_Interface/status_processor.c +++ b/DSP_API/SmartSDR_Interface/status_processor.c @@ -82,6 +82,9 @@ static void _handle_status(char* string) char cmd[512] = {0}; sprintf(cmd, "slice s %d fm_deviation=1250 post_demod_low=0 post_demod_high=6000 dfm_pre_de_emphasis=0 post_demod_bypass=1 squelch=0", slc); tc_sendSmartSDRcommand(cmd,FALSE, NULL); + + sched_waveform_setDSTARSlice(slc); + } else { diff --git a/DSP_API/ThumbDV/dstar.c b/DSP_API/ThumbDV/dstar.c index 08b0918..07fe1fa 100644 --- a/DSP_API/ThumbDV/dstar.c +++ b/DSP_API/ThumbDV/dstar.c @@ -506,6 +506,8 @@ DSTAR_MACHINE dstar_createMachine( void ) { machine->slow_decoder = safe_malloc(sizeof(slow_data_decoder)); + machine->slice = 0; + return machine; } @@ -712,7 +714,7 @@ BOOL dstar_stateMachine( DSTAR_MACHINE machine, BOOL in_bit, unsigned char * amb dstar_processHeader( bytes, &machine->incoming_header ); - dstar_updateStatus( machine, 0, STATUS_RX ); + dstar_updateStatus( machine, machine->slice, STATUS_RX ); } else { diff --git a/DSP_API/ThumbDV/dstar.h b/DSP_API/ThumbDV/dstar.h index ae5f0b9..737de8e 100644 --- a/DSP_API/ThumbDV/dstar.h +++ b/DSP_API/ThumbDV/dstar.h @@ -99,6 +99,8 @@ typedef struct _dstar_machine { SLOW_DATA_DECODER slow_decoder; + uint32 slice; + } dstar_machine, * DSTAR_MACHINE; typedef struct _dstar_fec {