mirror of https://gerrit.osmocom.org/simtrace2
Function pointer struct in main for run,init
This commit is contained in:
parent
1edf350c34
commit
fb524b9bb3
|
@ -214,6 +214,13 @@ void Phone_Master_Init( void ) {
|
|||
|
||||
USART_SetTransmitterEnabled(USART_PHONE, 1);
|
||||
USART_SetReceiverEnabled(USART_PHONE, 1);
|
||||
|
||||
/* Configure ISO7816 driver */
|
||||
// FIXME: PIO_Configure(pPwr, PIO_LISTSIZE( pPwr ));
|
||||
|
||||
|
||||
|
||||
|
||||
// FIXME: Or do I need to call VBUS_CONFIGURE() here instead, which will call USBD_Connect() later?
|
||||
// USBD_Connect();
|
||||
// FIXME: USB clock? USB PMC?
|
||||
|
@ -232,3 +239,12 @@ void Phone_Master_Init( void ) {
|
|||
*/
|
||||
|
||||
}
|
||||
|
||||
void Phone_run( void )
|
||||
{
|
||||
// FIXME: Function Phone_run not implemented yet
|
||||
|
||||
/* Send and receive chars */
|
||||
// ISO7816_GetChar(&rcv_char);
|
||||
// ISO7816_SendChar(char_to_send);
|
||||
}
|
||||
|
|
|
@ -5,6 +5,21 @@
|
|||
|
||||
#include "board.h"
|
||||
|
||||
/*------------------------------------------------------------------------------
|
||||
* Internal variables
|
||||
*------------------------------------------------------------------------------*/
|
||||
typedef struct {
|
||||
void (* init) ( void );
|
||||
void (* run) ( void );
|
||||
} conf_func;
|
||||
|
||||
conf_func config_func_ptrs[] = {
|
||||
{Sniffer_Init, Sniffer_run}, /* CFG_NUM_SNIFF */
|
||||
{Phone_Master_Init, Phone_run}, /* CFG_NUM_PHONE */
|
||||
{MITM_init, MITM_run}, /* CFG_NUM_MITM */
|
||||
};
|
||||
|
||||
|
||||
/*------------------------------------------------------------------------------
|
||||
* Internal variables
|
||||
*------------------------------------------------------------------------------*/
|
||||
|
@ -55,54 +70,13 @@ extern int main( void )
|
|||
// TC_Start(TC0, 0);
|
||||
}
|
||||
|
||||
|
||||
/* FIXME: Or should we move the while loop into every case, and break out
|
||||
in case the config changes? */
|
||||
switch(simtrace_config) {
|
||||
case CFG_NUM_SNIFF:
|
||||
if (conf_changed) {
|
||||
Sniffer_Init();
|
||||
printf("****+ Changed to CFG_NUM_SNIFF\n\r");
|
||||
config_func_ptrs[simtrace_config-1].init();
|
||||
conf_changed = 0;
|
||||
} else {
|
||||
if (rcvdChar != 0) {
|
||||
TRACE_DEBUG("Rcvd char _%x_ \n\r", rcvdChar);
|
||||
rcvdChar = 0;
|
||||
}
|
||||
}
|
||||
break;
|
||||
/* case CONF_CCID_READER:
|
||||
if (conf_changed) {
|
||||
// Init
|
||||
conf_changed = 0;
|
||||
} else {
|
||||
// Receive char
|
||||
}
|
||||
break; */
|
||||
case CFG_NUM_PHONE:
|
||||
if (conf_changed) {
|
||||
Phone_Master_Init();
|
||||
printf("****+ Changed to CFG_NUM_PHONE\n\r");
|
||||
conf_changed = 0;
|
||||
/* Configure ISO7816 driver */
|
||||
// FIXME: PIO_Configure(pPwr, PIO_LISTSIZE( pPwr ));
|
||||
} else {
|
||||
/* Send and receive chars */
|
||||
// ISO7816_GetChar(&rcv_char);
|
||||
// ISO7816_SendChar(char_to_send);
|
||||
}
|
||||
break;
|
||||
case CFG_NUM_MITM:
|
||||
if (conf_changed) {
|
||||
printf("****+ Changed to CFG_NUM_MITM\n\r");
|
||||
// Init
|
||||
conf_changed = 0;
|
||||
} else {
|
||||
// Receive char
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
config_func_ptrs[simtrace_config-1].run();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -77,3 +77,11 @@ void Sniffer_Init( void )
|
|||
|
||||
USART_SetReceiverEnabled(USART_PHONE, 1);
|
||||
}
|
||||
|
||||
void Sniffer_run( void )
|
||||
{
|
||||
if (rcvdChar != 0) {
|
||||
TRACE_DEBUG("Rcvd char _%x_ \n\r", rcvdChar);
|
||||
rcvdChar = 0;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue