FreeCalypso > hg > freecalypso-sw
view gsm-fw/L1/stand/forwarder.c @ 853:ae254ffeaec3
AT command interface works!
The cause of the breakage was the same Nucleus API issue with NU_Create_Timer()
which we encountered at the very beginning of this project with Riviera timers:
the code in uartfax.c from TCS211 was passing 0 as the initial dummy value for
the timer duration, and our FreeNucleus version doesn't like it. The fix is
the same: pass 1 as the initial dummy value instead.
author | Space Falcon <falcon@ivan.Harhan.ORG> |
---|---|
date | Thu, 30 Apr 2015 01:46:26 +0000 |
parents | 0c736bd8385e |
children |
line wrap: on
line source
/* * This module implements the special "forwarder" (L1IF) GPF entity * for L1 standalone operation described in README. */ /*==== INCLUDES =============================================================*/ #include <string.h> #include "typedefs.h" /* to get Condat data types */ #include "vsi.h" /* to get a lot of macros */ #include "pei.h" /* to get PEI interface */ #include "tools.h" /* to get common tools */ #include "header.h" #include "os.h" #include "../../gpf/frame/route.h" /*==== LOCALS ================================================================*/ static T_HANDLE Our_Handle; #define VSI_CALLER Our_Handle, static T_HANDLE hCommTST = VSI_ERROR; /*==== PRIVATE FUNCTIONS =====================================================*/ /* +------------------------------------------------------------------------------ | Function : pei_init +------------------------------------------------------------------------------ | Description : Initialize Protocol Stack Entity | | Parameters : handle - task handle | | Return : PEI_OK - entity initialised | PEI_ERROR - entity not (yet) initialised +------------------------------------------------------------------------------ */ LOCAL SHORT pei_init ( T_HANDLE Handle ) { Our_Handle = Handle; if (hCommTST < VSI_OK) { if ((hCommTST = vsi_c_open (VSI_CALLER "TST")) < VSI_OK) return PEI_ERROR; } return PEI_OK; } LOCAL SHORT pei_primitive (void *primitive) { OS_QDATA OS_Msg = { 0 }; T_VOID_STRUCT *prim = (T_VOID_STRUCT *) primitive; OS_Msg.data16 = MSG_PRIMITIVE; OS_Msg.e_id = Our_Handle; OS_Msg.ptr = prim; OS_Msg.data32 = P_OPC(prim); os_GetTime(0, &OS_Msg.time); rt_ExtPrimitive(Our_Handle, hCommTST, Our_Handle, "EXT", &OS_Msg); return PEI_OK; } /*==== PUBLIC FUNCTIONS =====================================================*/ /* +------------------------------------------------------------------------------ | Function : pei_create +------------------------------------------------------------------------------ | Description : Create the Protocol Stack Entity. | | Parameters : info - Pointer to the structure of entity parameters | | Return : PEI_OK - entity created successfully | +------------------------------------------------------------------------------ */ GLOBAL SHORT l1stand_fwd_pei_create ( T_PEI_INFO **info ) { static T_PEI_INFO pei_info = { "L1IF", { pei_init, NULL, pei_primitive, NULL, /* no timeout function */ NULL, /* no signal function */ NULL, /* no run function */ NULL, /* no config function */ NULL, /* no monitor function */ }, 1000, /* Stack Size */ 50, /* Queue Entries */ 20, /* Priority */ 0, /* number of timer */ PASSIVE_BODY | COPY_BY_REF | TRC_NO_SUSPEND /* flags */ }; /* * export startup configuration data */ *info = &pei_info; /* * Initialize entity data */ return PEI_OK; } /*==== END OF FILE ==========================================================*/