コード例 #1
0
void
ATcodec_Init_Library_Tree   (ATcodec_Tree_t *tree, AT_CODEC_FUNCTIONS_PTRS *funcs)
{
  VP_OS_ASSERT(funcs);
  VP_OS_ASSERT(funcs->open);
  VP_OS_ASSERT(funcs->read);
  VP_OS_ASSERT(funcs->enable);
  VP_OS_ASSERT(funcs->write);
  VP_OS_ASSERT(funcs->close);
  VP_OS_ASSERT(funcs->init);
  VP_OS_ASSERT(funcs->shutdown);
	
  ATcodec_Tree_init(tree, sizeof(ATcodec_Message_Data_t), 1);
	
  memcpy(&func_ptrs, funcs, sizeof(*funcs));
	
  vp_os_mutex_init(&ATcodec_cond_mutex);
  vp_os_cond_init(&ATcodec_wait_cond, &ATcodec_cond_mutex);
	
  if(func_ptrs.init() != AT_CODEC_INIT_OK)
    {
      ATCODEC_PRINT("ATcodec Init error\n");
    }
  else
    {
      ATcodec_Tree_print(tree);
      atcodec_lib_init_ok = 1;
      ATcodec_Message_len = 0;
    }
}
コード例 #2
0
/********************************************************************
 * Static functions
 *******************************************************************/
AT_CODEC_ERROR_CODE host_init( void )
{
  if( func_ptrs.init != NULL )
     func_ptrs.init();

# undef ATCODEC_DEFINE_AT_CMD
# define ATCODEC_DEFINE_AT_CMD(ID,Str,From,Cb,Prio) \
    if((ids.ID = ATcodec_Add_Defined_Message(Str)) == -1) \
      { \
        return AT_CODEC_INIT_ERROR; \
      }

# undef ATCODEC_DEFINE_AT_RESU
# define ATCODEC_DEFINE_AT_RESU(ID,Str,From,Cb) \
    if((ids.ID = ATcodec_Add_Hashed_Message(Str,ids.From,Cb,0)) == -1) \
      { \
        return AT_CODEC_INIT_ERROR; \
      }

# include <at_msgs.h>

  return AT_CODEC_INIT_OK;
}