//------------------------------------------------------------------------------ int thk_debug(void *param){ unsigned int address=0; unsigned int data=0x1000; printf("(Destructive) Testing memEEPROM\r\n"); for(address=MEP_FIRST_ADDR; address<=MEP_LAST_ADDR; address++, data++){ //con_printf("testing address j="); Hex16ToAscii( address); con_printf(buffer); con_printf("\n"); printf("writing: "); writeIntEEPROM1(address, data); printf("value[%d] = %d \r\n", address, data); printf("reading: "); unsigned int res = readIntEEPROM1(address); printf("value[%d] = %d \r\n", address, res); printf("comparing: "); if(data==res){ printf("ok\r\n"); } else{ printf("fail\r\n"); } } unsigned int indxVar; data = -1; //0xFFFF for(indxVar=MEP_FIRST_ADDR; indxVar<=MEP_LAST_ADDR; indxVar++){ writeIntEEPROM1(indxVar, data); } return 1; }
void srp_debug4(void){ unsigned int address=0; unsigned int data=0xA000; char buffer[10]; con_printf("(Destructive) Testing memEEPROM\r\n"); for(address=MEP_FIRST_ADDR;address<=MEP_LAST_ADDR;address++, data++){ //con_printf("testing address j="); Hex16ToAscii( address); con_printf(buffer); con_printf("\n"); con_printf("writing: "); writeIntEEPROM1(address, data); itoa(buffer, address,10); con_printf("value["); con_printf(buffer); con_printf("]="); itoa(buffer, data,10); con_printf(buffer); con_printf(" | "); con_printf("reading: "); unsigned int res = readIntEEPROM1(address); itoa(buffer, address,10); con_printf("value["); con_printf(buffer); con_printf("]="); itoa(buffer, res,10); con_printf(buffer); con_printf(" | "); con_printf("comparing: "); if(data==res){ con_printf("ok"); } else{ con_printf("fail"); } con_printf("\n"); } }
/*------------------------------------------------------------------------------ * DRP_FLP_SET_INDEX *------------------------------------------------------------------------------ * @brief : Configura la variable del sistema que indica el indice * del flight plan que sera modificado. Este comando debe * utilizarse antes de los comandos drp_fpl_set_command y * drp_fpl_set_param, ya que estos comandos modifican el * indice indicado por esta variable. * @arg index - Nuevo valor del puntero a flight plan * @return : 1 - Success, 0 - Fail * ID : 0x5027 *----------------------------------------------------------------------------*/ int drp_fpl_set_index(void *param) { MemEEPROM_Vars mem_eeprom_var = mem_fpl_index; int value = *((int*)param); writeIntEEPROM1(mem_eeprom_var, value); return 1; //se asume operacion exitosa }
/** * Sets a status variable's value * * @param indxVar Variable to set @sa DAT_CubesatVar * @param value Value to set */ void dat_setCubesatVar(DAT_CubesatVar indxVar, int value) { xSemaphoreTake(dataRepositorySem, portMAX_DELAY); #if SCH_STATUS_REPO_MODE == 0 //Uses internal memory DAT_CUBESAT_VAR_BUFF[indxVar] = value; #else //Uses external memory writeIntEEPROM1( (unsigned char)indxVar, value); #endif xSemaphoreGive(dataRepositorySem); }
/** * Sets a status variable's value * * @param indxVar Variable to set @sa DAT_CubesatVar * @param value Value to set */ void dat_setCubesatVar(DAT_CubesatVar indxVar, int value) { osSemaphoreTake(&repoDataSem, portMAX_DELAY); #if SCH_STATUSCH_STATUS_REPO_MODE == 0 //Uses internal memory DAT_CUBESAT_VAR_BUFF[indxVar] = value; #else //Uses external memory #if __linux__ printf("writeIntEEPROM1\n"); #else writeIntEEPROM1( (unsigned char)indxVar, value); #endif #endif osSemaphoreGiven(&repoDataSem); }
void mem_setVar( unsigned char indxVar, int value){ //Para el caso de guardar las variables en la memI2C writeIntEEPROM1( (unsigned char)indxVar, value); }
/** * Command that writes DEP registration. It takes care of: * 1) Register success or failure of antenna deployment * 2) Reset Antenna DEP vars to a Before Fligth condition * @param param -1 = Reset, [1, MAX_TRIES] registration as succes, * [MAX_TRIES+1 = registration as failure * @return 1 = On a correct parameter, 0 incorrect parameter (no change in vars) */ int thk_deployment_registration(void *param) { int dep_tries = *( (int *)param ); int dep_state; MemEEPROM_Vars mem_eeprom_var; int value; BOOL valid_dep_tries = FALSE; //Reset antenna DEP variables (EBF routine) if(dep_tries == (-1) ) { mem_eeprom_var = mem_dep_ant_deployed; value = 0; writeIntEEPROM1(mem_eeprom_var, value); mem_eeprom_var = mem_dep_ant_tries; value = 0; writeIntEEPROM1(mem_eeprom_var, value); //RTC mem_eeprom_var = mem_dep_year; value = 0; writeIntEEPROM1(mem_eeprom_var, value); mem_eeprom_var = mem_dep_month; value = 0; writeIntEEPROM1(mem_eeprom_var, value); mem_eeprom_var = mem_dep_day_number; value = 0; writeIntEEPROM1(mem_eeprom_var, value); mem_eeprom_var = mem_dep_week_day; value = 0; writeIntEEPROM1(mem_eeprom_var, value); mem_eeprom_var = mem_dep_hours; value = 0; writeIntEEPROM1(mem_eeprom_var, value); mem_eeprom_var = mem_dep_minutes; value = 0; writeIntEEPROM1(mem_eeprom_var, value); mem_eeprom_var = mem_dep_seconds; value = 0; writeIntEEPROM1(mem_eeprom_var, value); return 1; } // Antennas were NOT deployed if(dep_tries == (THK_MAX_TRIES_ANT_DEPLOY+1) ){ dep_state = 0; dep_tries = THK_MAX_TRIES_ANT_DEPLOY+1; valid_dep_tries = TRUE; } //Antennas were deployed if( (dep_tries >= 1) && (dep_tries <= THK_MAX_TRIES_ANT_DEPLOY) ){ dep_state = 1; valid_dep_tries = TRUE; } //Register only if valid_dep_tries == TRUE; if( valid_dep_tries == TRUE ){ mem_eeprom_var = mem_dep_ant_deployed; value = dep_state; writeIntEEPROM1(mem_eeprom_var, value); mem_eeprom_var = mem_dep_ant_tries; value = dep_tries; writeIntEEPROM1(mem_eeprom_var, value); //RTC mem_eeprom_var = mem_dep_year; value = RTC_get_year(); writeIntEEPROM1(mem_eeprom_var, value); mem_eeprom_var = mem_dep_month; value = RTC_get_month(); writeIntEEPROM1(mem_eeprom_var, value); mem_eeprom_var = mem_dep_day_number; value = RTC_get_day_num(); writeIntEEPROM1(mem_eeprom_var, value); mem_eeprom_var = mem_dep_week_day; value = RTC_get_week_day(); writeIntEEPROM1(mem_eeprom_var, value); mem_eeprom_var = mem_dep_hours; value = RTC_get_hours(); writeIntEEPROM1(mem_eeprom_var, value); mem_eeprom_var = mem_dep_minutes; value = RTC_get_minutes(); writeIntEEPROM1(mem_eeprom_var, value); mem_eeprom_var = mem_dep_seconds; value = RTC_get_seconds(); writeIntEEPROM1(mem_eeprom_var, value); return 1; } else{ return 0; } }