int main() { SMSHOSTLIB_ERR_CODES_E RetCode = SMSHOSTLIB_ERR_OK; char Buffer[10]; RetCode = SmsLiteAdrInit( SMSHOSTLIB_DEVMD_CMMB, SmsLiteCmmbControlRxCallback, SmsLiteCmmbDataCallback ); if ( RetCode != SMSHOSTLIB_ERR_OK ) { printf("xingyu[Test_Siano] Return err 0x%x\n",RetCode); //init error return RetCode ; } else printf("xingyu[Test_Siano]SmsLiteAdrInit ok\n"); SmsMsgData_ST* pStaticMsg = (SmsMsgData_ST*)(malloc(sizeof(SmsMsgData_ST))); printf("Get version before FW downloading\n"); PrepareGetVersion(pStaticMsg); SmsLiteAdrWriteMsg( pStaticMsg ); //debug printf("Start to tune to frequency %d\n", CMMB_USER_FREQUENCY); PrepareCMMBTuneMsg(pStaticMsg, CMMB_USER_FREQUENCY); SmsLiteAdrWriteMsg( pStaticMsg ); //debug OSW_TaskSleep(5000); printf("Start service %d\n", CMMB_USER_SERVICE); PrepareStartServiceMsg(pStaticMsg, CMMB_USER_SERVICE); SmsLiteAdrWriteMsg( pStaticMsg ); //debug //OSW_TaskSleep(60000); #if 0 printf("[Test Siano] using hw\n"); // driver loop back test, test driver working AdrLoopbackTest(); #else printf("xingyu[Test_Siano] waiting ............press 'c' stop.........\n "); while(1){ fgets(Buffer, 10, stdin); if(Buffer[0] =='c') break; } #endif //driver terminate printf("xingyu[Test_Siano]SmsLiteAdrTerminate\n"); SmsLiteAdrTerminate(); printf("xingyu[Test_Siano] ****************************** End ******************************* \n\n\n "); free(pStaticMsg); return 0; }
//******************************************************************************* // SMSHOSTLIB_ERR_CODES_E SMSHOSTLITE_API SmsLiteCmmbLibInit( SMSHOSTLIBLITE_CMMB_INITLIB_PARAMS_ST* pInitLibParams ) { SMSHOSTLIBLITE_CMMB_INITLIB_PARAMS_ST LocalInitParams = {0}; SMSHOSTLIB_ERR_CODES_E RetCode = SMSHOSTLIB_ERR_OK; SMSHOST_LOG1(SMSLOG_APIS,"Crystal=%d", pInitLibParams->Crystal ); if ( g_LibCmmbState.IsLibInit ) { SMSHOST_LOG1(SMSLOG_APIS | SMSLOG_ERROR,"Return err 0x%x",SMSHOSTLIB_ERR_LIB_ALREADY_INITIATED); return SMSHOSTLIB_ERR_LIB_ALREADY_INITIATED; } //ZERO_MEM_OBJ(&g_LibCmmbState); memset(&g_LibCmmbState, 0, sizeof(g_LibCmmbState)); //jan if ( pInitLibParams == NULL || pInitLibParams->pCtrlCallback == NULL || pInitLibParams->Size == 0 ) { SMSHOST_LOG1(SMSLOG_APIS | SMSLOG_ERROR,"Return err 0x%x",SMSHOSTLIB_ERR_INVALID_ARG); return SMSHOSTLIB_ERR_INVALID_ARG; } memcpy( &LocalInitParams, pInitLibParams, pInitLibParams->Size ); // SmsLiteInit( LocalInitParams.pCtrlCallback ); g_LibCmmbState.pDataCallback = LocalInitParams.pDataCallback; g_LibCmmbState.Crystal = LocalInitParams.Crystal; if ( LocalInitParams.Crystal == 0 ) { g_LibCmmbState.Crystal = SMSHOSTLIB_DEFAULT_CRYSTAL; } RetCode = SmsLiteAdrInit( SMSHOSTLIB_DEVMD_CMMB, SmsLiteCmmbControlRxCallback, SmsLiteCmmbDataCallback ); if ( RetCode != SMSHOSTLIB_ERR_OK ) { SMSHOST_LOG1(SMSLOG_APIS | SMSLOG_ERROR,"Return err 0x%x",RetCode); return RetCode ; } // Set crystal message if ( g_LibCmmbState.Crystal != SMSHOSTLIB_DEFAULT_CRYSTAL ) { SmsMsgData_ST SmsMsg = {0}; SMS_SET_HOST_DEVICE_STATIC_MSG_FIELDS( &SmsMsg ); SmsMsg.xMsgHeader.msgType = MSG_SMS_NEW_CRYSTAL_REQ; SmsMsg.xMsgHeader.msgLength = (UINT16)sizeof(SmsMsg); SmsMsg.msgData[0] = g_LibCmmbState.Crystal; g_LibCmmbState.SyncFlag = FALSE; SmsLiteSendCtrlMsg( (SmsMsgData_ST*)&SmsMsg ); // Wait for device init response if ( !SmsHostWaitForFlagSet( &g_LibCmmbState.SyncFlag, 200 ) ) { return SMSHOSTLIB_ERR_DEVICE_NOT_INITIATED; } } g_LibCmmbState.IsLibInit = TRUE ; #ifdef SMSHOST_ENABLE_LOGS SmsLiteSetDeviceFwLogState(); #endif //SmsLiteGetVersion_Req(); SMSHOST_LOG0(SMSLOG_APIS,"LibInit OK"); return SMSHOSTLIB_ERR_OK; }