//--------------------------------------------------------------------------------- // Function Name: RunWriteDataToEEPROM(); // Description : // Return Value : // NULL // Calling To : // Called By : snmp_read() on the snmpaget.c //--------------------------------------------------------------------------------- void RunWriteDataToEEPROM(void) { #ifndef _PC if (Snmp_WriteDataTo_EEPROM) { if(WriteToEEPROM(&EEPROM_Data) != 0) LightOnForever(Status_Lite); // Write EEPROM Data Snmp_WriteDataTo_EEPROM = 0; RunRestart(); } #endif }
void saveData(void) { int eeRegCount; for (eeRegCount = 0; eeRegCount < configDataSize; eeRegCount++) { LEDon; WriteToEEPROM(eeRegCount, configData[eeRegCount]); Delay_ms(5); } LEDoff; }
void configSave(void) { uint8_t i; LEDon(); for (i = 0; i < CONFIGDATASIZE; i++) { //read data from eeprom, //check, if it has changed, only then rewrite; int data = ReadFromEEPROM(i); if (data != -1 && data != configData[i]) { WriteToEEPROM(i, configData[i]); } Delay_ms(5); } LEDoff(); }
void LinkLocal_ip_Task(cyg_addrword_t arg) { int prob_conut, retry_count; uint32 LinkLocalIP; int get_conflict; //get arp reply to conflict our IP LinkLocal_set_state( NO_USE ); while(1){ cyg_semaphore_init(&linklocal_sem, 0); cyg_semaphore_wait(&linklocal_sem); init_LinkLocal(); if(rendezvous_TaskHdl != 0) { cyg_thread_suspend(rendezvous_TaskHdl); } prob_conut = 0; retry_count = 0; while(1){ switch( LinkLocal_get_current_state() ){ case PROBE: //ZOTIPS LinkLocalIP = SetLinkLocalIP(WLanface, 0 ); LinkLocalIP = SetLinkLocalIP(Lanface, 0 ); //ZOTIPS break; case RETRY: //ZOTIPS LinkLocalIP = SetLinkLocalIP(WLanface, 1 ); LinkLocalIP = SetLinkLocalIP(Lanface, 1 ); //ZOTIPS break; case ANNOUNCE: //ZOTIPS LinkLocalIP = SetLinkLocalIP(WLanface, 0 ); //ZOTIPS set_netif_ip(WLanface); LinkLocalIP = SetLinkLocalIP(Lanface, 0 ); //ZOTIPS set_netif_ip(Lanface); //ZOTIPS break; } //ZOTIPS LinkLocal_IP_Query(LinkLocalIP, WLanface); LinkLocal_IP_Query(LinkLocalIP, Lanface); //ZOTIPS get_conflict = cyg_semaphore_timed_wait(&linklocal_conflict, cyg_current_time() +(900/MSPTICK)); switch( LinkLocal_get_current_state() ){ case PROBE: if( get_conflict ) { LinkLocal_set_state( RETRY ); ppause(1000); } else prob_conut++; if( prob_conut == 3) { ppause(900); LinkLocal_set_state( ANNOUNCE ); } break; case RETRY: if( get_conflict ) { retry_count++; } else{ LinkLocal_set_state( PROBE ); prob_conut = 1; } ppause(1000); if( retry_count == 15) { ppause(900); LinkLocal_set_state( ANNOUNCE ); } break; case ANNOUNCE: if(get_conflict) ppause(1000); //ZOTIPS LinkLocal_IP_Query(LinkLocalIP, WLanface); LinkLocal_IP_Query(LinkLocalIP, Lanface); //ZOTIPS WriteToEEPROM(&EEPROM_Data); LinkLocal_set_state( IDLE ); break; } if( LinkLocal_get_current_state() == IDLE) break; } if( rendezvous_TaskHdl == 0) cyg_semaphore_post( &rendezvous_sem); else { cyg_thread_resume(rendezvous_TaskHdl); Need_Rendezous_Reload = 1; } cyg_semaphore_post(&DhcpWaitLinklocal_sem); } }