/** EEPROM データ読み出し * @param adr EEPROMアドレス * @param[out] dt データ * @param type データタイプ * @return dt **************************************************************************** */ void* PARA_ReadEepromData( uint16_t adr, void *dt, DATA_TYPE type ) { uint8_t *dtp; switch( type ) { case DATA_TYPE_INT8: EEPROM_ReadData( adr, (uint8_t*)dt, sizeof( int8_t ) ); break; case DATA_TYPE_INT16: EEPROM_ReadData( adr, (uint8_t*)dt, sizeof( int16_t ) ); break; case DATA_TYPE_INT32: EEPROM_ReadData( adr, (uint8_t*)dt, sizeof( int32_t ) ); break; case DATA_TYPE_FLOAT: EEPROM_ReadData( adr, (uint8_t*)dt, sizeof( float ) ); break; case DATA_TYPE_STRING: for( dtp = (uint8_t*)dt; ; dtp++, adr++ ) { *dtp = EEPROM_ReadByte( adr ); if( *dtp == 0 ) break; } break; default: break; } return dt; }
/** 拡張パラメータのEEPROMからの読み出し * @para check TRUE:チェックサムをチェックする、FALSE:しない。 * @return TRUE:正常、FALSE:バックアップも含めて読み出しエラー **************************************************************************** */ BOOL para_LoadParameterEx( BOOL check ) { BOOL stat = TRUE; EEPROM_ReadData( EEPROM_PAGE_0 + PARAMETER_EX_OFFSET, (uint8_t*)&ParameterEx, sizeof( ParameterEx ) ); // 拡張パラメータ読み出し if( check && ( para_GetSum( (void*)&ParameterEx, sizeof( ParameterEx ) ) != 0 ) ) { // エラーであればバックアップを読み出す。 EEPROM_ReadData( EEPROM_PAGE_1 + PARAMETER_EX_OFFSET, (uint8_t*)&ParameterEx, sizeof( ParameterEx ) ); if( para_GetSum( (void*)&ParameterEx, sizeof( ParameterEx ) ) != 0 ) stat = FALSE; // エラー } return stat; }
/********************************************************************************************* * name : EEPROM_ReadRati * func : EEPROM读参数配置结构体 * para : none * ret : Correct_Input * comment : *********************************************************************************************/ Correct_Input EEPROM_ReadRati() { Correct_Input savestruct; uint8_t ReadData[RATI_SIZE]; uint8_t i; if(EEPROM_ReadData(ReadData,RATI_SIZE,RATI_ADRESS)==FALSE) { } UINT8TOINT32(ReadData,savestruct.intercept,savestruct.slope); return savestruct; }
/********************************************************************************************* * name : EEPROM_ReadStruct * func : EEPROM读结构体 * para : none * ret : EEPROMDataStruct savestruct * comment : *********************************************************************************************/ EEPROMDataStruct EEPROM_ReadStruct() { EEPROMDataStruct savestruct; uint8_t ReadData[DATA_SIZE]; uint8_t i; uint8_t num; num=0; if(EEPROM_ReadData(ReadData,DATA_SIZE,DATA_ADRESS)==FALSE) { } for(i=0;i<4;i++) { savestruct.ipConfig.ip[i]=ReadData[num]; num+=1; } for(i=0;i<4;i++) { savestruct.ipConfig.gw[i]=ReadData[num]; num+=1; } for(i=0;i<4;i++) { savestruct.ipConfig.sub[i]=ReadData[num]; num+=1; } for(i=0;i<6;i++) { savestruct.ipConfig.mac[i]=ReadData[num]; num+=1; } for(i=0;i<6;i++) { savestruct.uartConfig[i]=ReadData[num]; num+=1; } for(i=0;i<6;i++) { savestruct.password[i]=ReadData[num]; num+=1; } return savestruct; }