extern eOresult_t eo_skin_Deactivate(EOtheSKIN *p) { if(NULL == p) { return(eores_NOK_nullpointer); } if(eobool_false == p->service.active) { // i force to eomn_serv_state_idle because it may be that state was eomn_serv_state_verified or eomn_serv_state_failureofverify p->service.state = eomn_serv_state_idle; eo_service_hid_SynchServiceState(eo_services_GetHandle(), eomn_serv_category_skin, p->service.state); return(eores_OK); } if(eobool_true == p->service.started) { eo_skin_Stop(p); } eo_skin_SetRegulars(p, NULL, NULL); eo_canmap_DeconfigEntity(eo_canmap_GetHandle(), eoprot_endpoint_skin, eoprot_entity_sk_skin, p->sharedcan.entitydescriptor); eo_canmap_UnloadBoards(eo_canmap_GetHandle(), p->sharedcan.boardproperties); eo_entities_SetNumOfSkins(eo_entities_GetHandle(), 0); p->numofmtbs = 0; uint8_t i=0; for(i=0; i<eomn_serv_skin_maxpatches; i++) { p->skinpatches[i] = NULL; p->patchisrunning[i] = eobool_false; eo_vector_Clear(p->rxdata[i]); } memset(&p->service.servconfig, 0, sizeof(eOmn_serv_configuration_t)); p->service.servconfig.type = eomn_serv_NONE; eo_vector_Clear(p->sharedcan.boardproperties); eo_vector_Clear(p->sharedcan.entitydescriptor); // make sure the timer is not running eo_timer_Stop(p->diagnostics.reportTimer); p->service.active = eobool_false; p->service.state = eomn_serv_state_idle; eo_service_hid_SynchServiceState(eo_services_GetHandle(), eomn_serv_category_skin, p->service.state); return(eores_OK); }
extern eOresult_t eo_confman_ConfirmationRequests_Process(EOconfirmationManager *p, eOipv4addr_t toipaddr) { if(NULL == p) { return(eores_NOK_generic); } eov_mutex_Take(p->mtx, eok_reltimeINFINITE); if(0 != eo_vector_Size(p->confrequests)) { uint16_t size = eo_vector_Size(p->confrequests); uint16_t i=0; for(i=0; i<size; i++) { eOropdescriptor_t *ropdes = (eOropdescriptor_t*) eo_vector_At(p->confrequests, i); eo_confman_Confirmation_Requested(p, toipaddr, ropdes); } eo_vector_Clear(p->confrequests); // remove the conf requests } eov_mutex_Release(p->mtx); return(eores_OK); }
extern eOresult_t eo_nvsetbrdbuilder_EPs_Clear(EOnvsetBRDbuilder* p) { EOvector *v = NULL; if(NULL == p) { return(eores_NOK_nullpointer); } // ok. now i put the item inside p->brdcfg->epcfg_constvect v = p->epcfg_vector; eo_vector_Clear(v); // and make sure that the constvector is updated eo_constvector_Load(v); return(eores_OK); }