コード例 #1
0
ファイル: cmdTHK.c プロジェクト: keimi/SUCHAI
//------------------------------------------------------------------------------
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;
}
コード例 #2
0
ファイル: cmdSRP.c プロジェクト: keimi/SUCHAI
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");
    }
}
コード例 #3
0
ファイル: cmdDRP.c プロジェクト: keimi/SUCHAI
/*------------------------------------------------------------------------------
 *                              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
}
コード例 #4
0
/**
 * 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);
}
コード例 #5
0
/**
 * 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);
}
コード例 #6
0
ファイル: memEEPROM.c プロジェクト: keimi/SUCHAI
void mem_setVar( unsigned char indxVar, int value){
    //Para el caso de guardar las variables en la memI2C
    writeIntEEPROM1( (unsigned char)indxVar, value);
}
コード例 #7
0
ファイル: cmdTHK.c プロジェクト: keimi/SUCHAI
/**
 * 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;
    }
}