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_SetTransmitterEnabled(USART_PHONE, 1);
|
||||||
USART_SetReceiverEnabled(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?
|
// FIXME: Or do I need to call VBUS_CONFIGURE() here instead, which will call USBD_Connect() later?
|
||||||
// USBD_Connect();
|
// USBD_Connect();
|
||||||
// FIXME: USB clock? USB PMC?
|
// 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"
|
#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
|
* Internal variables
|
||||||
*------------------------------------------------------------------------------*/
|
*------------------------------------------------------------------------------*/
|
||||||
|
@ -55,54 +70,13 @@ extern int main( void )
|
||||||
// TC_Start(TC0, 0);
|
// TC_Start(TC0, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* FIXME: Or should we move the while loop into every case, and break out
|
/* FIXME: Or should we move the while loop into every case, and break out
|
||||||
in case the config changes? */
|
in case the config changes? */
|
||||||
switch(simtrace_config) {
|
|
||||||
case CFG_NUM_SNIFF:
|
|
||||||
if (conf_changed) {
|
if (conf_changed) {
|
||||||
Sniffer_Init();
|
config_func_ptrs[simtrace_config-1].init();
|
||||||
printf("****+ Changed to CFG_NUM_SNIFF\n\r");
|
|
||||||
conf_changed = 0;
|
conf_changed = 0;
|
||||||
} else {
|
} else {
|
||||||
if (rcvdChar != 0) {
|
config_func_ptrs[simtrace_config-1].run();
|
||||||
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;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -77,3 +77,11 @@ void Sniffer_Init( void )
|
||||||
|
|
||||||
USART_SetReceiverEnabled(USART_PHONE, 1);
|
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