Ejemplo n.º 1
0
OSStatus MVDInit(mico_Context_t* const inContext)
{
  OSStatus err = kUnknownErr;
  
  //init MVD status
  inContext->appStatus.virtualDevStatus.isCloudConnected = false;
  inContext->appStatus.virtualDevStatus.RecvRomFileSize = 0;
  
  //init MCU connect interface
  //err = MVDDevInterfaceInit(inContext);
  //require_noerr_action(err, exit, 
  //                     mvd_log("ERROR: virtual device mcu interface init failed!") );
  
  //init cloud service interface
  err = MVDCloudInterfaceInit(inContext);
  require_noerr_action(err, exit, 
                       mvd_log("ERROR: virtual device cloud interface init failed!") );
  
  // wifi notify
  err = mico_rtos_init_semaphore(&_wifi_station_on_sem, 1);
  require_noerr_action(err, exit, 
                       mvd_log("ERROR: mico_rtos_init_semaphore (_wifi_station_on_sem) failed!") );
  
  err = MICOAddNotification( mico_notify_WIFI_STATUS_CHANGED, (void *)mvdNotify_WifiStatusHandler );
  require_noerr_action(err, exit, 
                       mvd_log("ERROR: MICOAddNotification (mico_notify_WIFI_STATUS_CHANGED) failed!") );
 
  // start MVD main thread
  err = mico_rtos_create_thread(NULL, MICO_APPLICATION_PRIORITY, "MVD main", 
                                MVDMainThread, STACK_SIZE_MVD_MAIN_THREAD, 
                                inContext );
  
exit:
  return err;
}
Ejemplo n.º 2
0
OSStatus easycloud_reset_cloud_info(mico_Context_t * const context)
{
  OSStatus err = kUnknownErr;
  MVDResetRequestData_t devDefaultResetData;
  mico_Context_t *inContext = (mico_Context_t *)context;
  int retry_cnt = 3;
  
  
  do{
    /* cloud context init */
    err = MVDCloudInterfaceInit(inContext);
    if(kNoErr == err){
      mvd_log("[MVD]Device EasyCloud context init [OK]");
    }
    else{
      mvd_log("[MVD]Device EasyCloud context init [FAILED]");
      retry_cnt--;
      continue;
    }
    
    /* cloud info reset */
    mvd_log("[MVD]Device reset EasyCloud info try[%d] ...", 4 - retry_cnt);
    memset((void*)&devDefaultResetData, 0, sizeof(devDefaultResetData));
    strncpy(devDefaultResetData.loginId,
            inContext->flashContentInRam.appConfig.virtualDevConfig.loginId,
            MAX_SIZE_LOGIN_ID);
    strncpy(devDefaultResetData.devPasswd,
            inContext->flashContentInRam.appConfig.virtualDevConfig.devPasswd,
            MAX_SIZE_DEV_PASSWD);
    strncpy(devDefaultResetData.user_token,
            inContext->micoStatus.mac,
            MAX_SIZE_USER_TOKEN);
    err = MVDCloudInterfaceResetCloudDevInfo(inContext, devDefaultResetData);
    if(kNoErr == err){
      mvd_log("[MVD]Device reset EasyCloud info [OK]");
    }
    else{
      mvd_log("[MVD]Device EasyCloud info [FAILED]");
    }
    
    retry_cnt--;
  }while((kNoErr != err) && (retry_cnt > 0));
  
  return err;
}