Esempio n. 1
0
uint16_t  mode_get(void)
{
    uint16_t mode;
    uint8_t get_str;
    //rt_kprintf("----------------------mode---------------------\n");
    drv_fls_read(PARAM_MODE_ADDR,(uint8_t*)&mode,sizeof(uint16_t));

    if(mode == CUSTOM_MODE){
        get_str = 0;
    }
    else if(mode == HIGHWAY_MODE){
        get_str = 1;
    }
    else if(mode == MOUNTAIN_MODE){
        get_str = 2;
    }
    else if(mode == CITY_MODE){
        get_str = 3;
    }
    else{ 
        OSAL_MODULE_DBGPRT(MODULE_NAME,OSAL_DEBUG_INFO,"mode reading error!!\n");
    }
    
    OSAL_MODULE_DBGPRT(MODULE_NAME,OSAL_DEBUG_INFO,"mode value = %04X,mode is %s\n", mode,mode_string[get_str]);

    return mode;

}
Esempio n. 2
0
void print_fd(uint32_t addr)//print  data of specified  address ,e.g:print_fd(0x80E0010),
{

    uint8_t data;

    drv_fls_read(addr,&data,1);

    rt_kprintf("data in address %x  is \"%d\"\n",addr,data);
}
Esempio n. 3
0
void print_init_word(void)//print  flag of initialized
{
    
    uint8_t init_word[sizeof(param_init_words)];


    drv_fls_read(PARAM_FLAG_ADDR,init_word,sizeof(param_init_words));

    rt_kprintf("init word in flash is \"%s\"\n",init_word);

}
Esempio n. 4
0
void mode_set(uint16_t mode)
{
    cfg_param_t all_param[4];
    param_mode = mode;
    
    drv_fls_read(PARAM_ADDR_CUSTOM,(uint8_t*)&all_param[0],sizeof(cfg_param_t));
    drv_fls_read(PARAM_ADDR_HIGHWAY,(uint8_t*)&all_param[1],sizeof(cfg_param_t));
    drv_fls_read(PARAM_ADDR_MOUNTAIN,(uint8_t*)&all_param[2],sizeof(cfg_param_t));
    drv_fls_read(PARAM_ADDR_CITY,(uint8_t*)&all_param[3],sizeof(cfg_param_t));



    drv_fls_erase(PARAM_SECTOR);
    drv_fls_write(PARAM_FLAG_ADDR,param_init_words,sizeof(param_init_words));    
    drv_fls_write(PARAM_MODE_ADDR,(uint8_t *)&param_mode,sizeof(uint16_t));
    drv_fls_write(PARAM_ADDR_CUSTOM,(uint8_t*)&all_param[0],sizeof(cfg_param_t));
    drv_fls_write(PARAM_ADDR_HIGHWAY,(uint8_t*)&all_param[1],sizeof(cfg_param_t));
    drv_fls_write(PARAM_ADDR_MOUNTAIN,(uint8_t*)&all_param[2],sizeof(cfg_param_t));
    drv_fls_write(PARAM_ADDR_CITY,(uint8_t*)&all_param[3],sizeof(cfg_param_t));
    osal_printf("mode = %d  write in flash\n", param_mode);

}
Esempio n. 5
0
void param_init(void)
{
    uint8_t magic_word[sizeof(param_init_words)];    
    drv_fls_read(PARAM_FLAG_ADDR,magic_word,sizeof(param_init_words));
    param_mode = mode_get();
    //drv_fls_read(PARAM_MODE_ADDR,(uint8_t*)&param_mode,sizeof(uint16_t));
    if(strcmp((const char*)param_init_words,(const char*)magic_word) != 0){
            osal_printf("loading default param,mode is custom\n");
            load_default_param_custom(&cms_param);            
            write_def_param();
    }
    else{
        load_param_from_fl();
    }
}
Esempio n. 6
0
void load_param_from_fl(void)
{
    uint32_t param_addr;
    p_cms_param = &cms_param;
    
    if(param_mode == CUSTOM_MODE){
        param_addr = PARAM_ADDR_CUSTOM;
    }
    else if(param_mode == HIGHWAY_MODE){
        param_addr = PARAM_ADDR_HIGHWAY;
    }
    else if(param_mode == MOUNTAIN_MODE){
        param_addr = PARAM_ADDR_MOUNTAIN;
    }
    else if(param_mode == CITY_MODE){
        param_addr = PARAM_ADDR_CITY;
    }
    
    drv_fls_read(param_addr,(uint8_t *)p_cms_param,sizeof(cfg_param_t));
    

}
Esempio n. 7
0
int8_t  gsnr_param_set(uint8_t gsnr_cal_step,int32_t AcceV_x,int32_t AcceV_y,int32_t AcceV_z,int32_t AcceAhead_x,int32_t AcceAhead_y,int32_t AcceAhead_z)
{

    int err;

    cfg_param_t *cfg_param;

    uint16_t mode;

    uint8_t param_num;

    cfg_param_t all_param[4];

    
    drv_fls_read(PARAM_ADDR_CUSTOM,(uint8_t*)&all_param[0],sizeof(cfg_param_t));
    drv_fls_read(PARAM_ADDR_HIGHWAY,(uint8_t*)&all_param[1],sizeof(cfg_param_t));
    drv_fls_read(PARAM_ADDR_MOUNTAIN,(uint8_t*)&all_param[2],sizeof(cfg_param_t));
    drv_fls_read(PARAM_ADDR_CITY,(uint8_t*)&all_param[3],sizeof(cfg_param_t));
    
    
    
    drv_fls_read(PARAM_MODE_ADDR,(uint8_t *)&mode,sizeof(uint16_t));

    param_num = get_param_num(mode);

    osal_printf("mode is %04X\n",mode);

    cfg_param = &all_param[param_num];

    cfg_param->gsnr.gsnr_cal_step = gsnr_cal_step;
    cfg_param->gsnr.AcceV_x = AcceV_x;
    cfg_param->gsnr.AcceV_y = AcceV_y;
    cfg_param->gsnr.AcceV_z = AcceV_z;
    cfg_param->gsnr.AcceAhead_x = AcceAhead_x;
    cfg_param->gsnr.AcceAhead_y = AcceAhead_y;
    cfg_param->gsnr.AcceAhead_z = AcceAhead_z;

    memcpy((uint8_t*)&cms_param,(uint8_t*)cfg_param,sizeof(cfg_param_t));


    rt_kprintf("gsnr is setting .....please don't power off!\n");
        
    drv_fls_erase(PARAM_SECTOR);
    drv_fls_write(PARAM_FLAG_ADDR,param_init_words,sizeof(param_init_words));
    drv_fls_write(PARAM_MODE_ADDR,(uint8_t *)&mode,sizeof(uint16_t));
    drv_fls_write(PARAM_ADDR_CUSTOM,(uint8_t*)&all_param[0],sizeof(cfg_param_t));
    drv_fls_write(PARAM_ADDR_HIGHWAY,(uint8_t*)&all_param[1],sizeof(cfg_param_t));
    drv_fls_write(PARAM_ADDR_MOUNTAIN,(uint8_t*)&all_param[2],sizeof(cfg_param_t));
    err = drv_fls_write(PARAM_ADDR_CITY,(uint8_t*)&all_param[3],sizeof(cfg_param_t));

    if(err == -1)
        rt_kprintf("gsnr param setting failed!!!\n");
    else
        rt_kprintf("gsnr param setting success!\n");


    cfg_param = NULL;


    return 0;

}
Esempio n. 8
0
uint8_t flash_read(uint8_t mode)
{
    cfg_param_t  *param_temp;

    uint32_t param_addr;

    if(mode == 1){
        param_addr = PARAM_ADDR_CUSTOM;
    }
    else if(mode == 2){
        param_addr = PARAM_ADDR_HIGHWAY;
    }
    else if(mode == 3){
        param_addr = PARAM_ADDR_MOUNTAIN;
    }
    else if(mode == 4){
        param_addr = PARAM_ADDR_CITY;
    }
    else{ 
        osal_printf("parameter error!\n");
        return 0;
    }

    param_temp = (cfg_param_t*)rt_malloc(sizeof(cfg_param_t));

    drv_fls_read(param_addr,(uint8_t *)param_temp,sizeof(cfg_param_t));
        
    rt_kprintf("-------------------parameters in  flash------------------\n");    
    rt_kprintf("----------------------vam---------------------\n");    
    rt_kprintf("ID(0)=%d%d%d%d\n",param_temp->pid[0],param_temp->pid[1],param_temp->pid[2],param_temp->pid[3]);
    rt_kprintf("vam.bsm_hops(1)=%d\n", param_temp->vam.bsm_hops);
    rt_kprintf("vam.bsm_boardcast_mode(2)=%d\n", param_temp->vam.bsm_boardcast_mode);
    rt_kprintf("vam.bsm_boardcast_saftyfactor(3)=%d\n", param_temp->vam.bsm_boardcast_saftyfactor);
    rt_kprintf("vam.bsm_pause_mode(4)=%d\n", param_temp->vam.bsm_pause_mode);
    rt_kprintf("vam.bsm_pause_hold_time(5)=%d (s)\n", param_temp->vam.bsm_pause_hold_time);
    rt_kprintf("vam.bsm_boardcast_period(6)=%d (ms)\n", param_temp->vam.bsm_boardcast_period);

    rt_kprintf("vam.evam_hops(7)=%d\n", param_temp->vam.evam_hops);
    rt_kprintf("vam.evam_broadcast_type(8)=%d\n", param_temp->vam.evam_broadcast_type);
    rt_kprintf("vam.evam_broadcast_peroid(9)=%d (ms)\n\n", param_temp->vam.evam_broadcast_peroid);
    
    rt_kprintf("----------------------vsa---------------------\n");    
    rt_kprintf("vsa.danger_detect_speed_threshold(10)=%d (km/h)\n", param_temp->vsa.danger_detect_speed_threshold);
    rt_kprintf("vsa.lane_dis(11)=%d (m)\n", param_temp->vsa.lane_dis);
    
    rt_kprintf("vsa.crd_saftyfactor(12)=%d\n", param_temp->vsa.crd_saftyfactor);
    rt_kprintf("vsa.crd_oppsite_speed(13)=%d (km/h)\n", param_temp->vsa.crd_oppsite_speed);
    rt_kprintf("vsa.crd_oppsite_rear_speed(14)=%d (km/h)\n", param_temp->vsa.crd_oppsite_rear_speed);
    rt_kprintf("vsa.crd_rear_distance(15)=%d (m)\n", param_temp->vsa.crd_rear_distance);

        
    rt_kprintf("vsa.ebd_mode(16)=%d\n", param_temp->vsa.ebd_mode);
    rt_kprintf("vsa.ebd_acceleration_threshold(17)=%d (m/s2)\n", param_temp->vsa.ebd_acceleration_threshold);
    rt_kprintf("vsa.ebd_alert_hold_time(18)=%d (s)\n\n", param_temp->vsa.ebd_alert_hold_time);
    
    rt_kprintf("----------------------gsnr---------------------\n");    
    rt_kprintf("gsnr.gsnr_cal_step(19)=%d\n",param_temp->gsnr.gsnr_cal_step);
    rt_kprintf("gsnr.gsnr_cal_thr(20)=%d\n",param_temp->gsnr.gsnr_cal_thr);
    rt_kprintf("gsnr.gsnr_ebd_thr(21)=%d\n",param_temp->gsnr.gsnr_ebd_thr);
    rt_kprintf("gsnr.gsnr_ebd_cnt(22)=%d\n",param_temp->gsnr.gsnr_ebd_cnt);
    rt_kprintf("gsnr.AcceV_x(23)=%d\n",param_temp->gsnr.AcceV_x);
    rt_kprintf("gsnr.AcceV_y(24)=%d\n",param_temp->gsnr.AcceV_y);
    rt_kprintf("gsnr.AcceV_z(25)=%d\n",param_temp->gsnr.AcceV_z);
    rt_kprintf("gsnr.AcceAhead_x(26)=%d\n",param_temp->gsnr.AcceAhead_x);
    rt_kprintf("gsnr.AcceAhead_y(27)=%d\n",param_temp->gsnr.AcceAhead_y);
    rt_kprintf("gsnr.AcceAhead_z(28)=%d\n",param_temp->gsnr.AcceAhead_z);
    
    rt_kprintf("----------------------wnet---------------------\n");    
    rt_kprintf("wnet.channel(29)=%d\n",param_temp->wnet.channel);
    rt_kprintf("wnet.txrate(30)=%d\n",param_temp->wnet.txrate);

    rt_kprintf("----------------------voc---------------------\n");    
    rt_kprintf("voc.fg_volume(32)=%d\n",param_temp->voc.fg_volume);
    rt_kprintf("voc.bg_volume(33)=%d\n",param_temp->voc.bg_volume);
    rt_kprintf("voc.speed(34)=%d\n",param_temp->voc.speed);
    
    rt_kprintf("...\n");

    rt_kprintf("----------------------end---------------------\n");    

    rt_free(param_temp);

    param_temp = NULL;

    return 0;

}
Esempio n. 9
0
int param_set(uint8_t param, int32_t value)
{

    int err;

    cfg_param_t *cfg_param;

    uint16_t mode;

    uint8_t param_num;

    cfg_param_t all_param[4];

    
    drv_fls_read(PARAM_ADDR_CUSTOM,(uint8_t*)&all_param[0],sizeof(cfg_param_t));
    drv_fls_read(PARAM_ADDR_HIGHWAY,(uint8_t*)&all_param[1],sizeof(cfg_param_t));
    drv_fls_read(PARAM_ADDR_MOUNTAIN,(uint8_t*)&all_param[2],sizeof(cfg_param_t));
    drv_fls_read(PARAM_ADDR_CITY,(uint8_t*)&all_param[3],sizeof(cfg_param_t));
    
    
    
    drv_fls_read(PARAM_MODE_ADDR,(uint8_t *)&mode,sizeof(uint16_t));

    param_num = get_param_num(mode);

    osal_printf("mode is %04X\n",mode);

    cfg_param = &all_param[param_num];


    if(param == 29){
        if((value < 1)&&(value > 13)){
            rt_kprintf("wrong channel!\n\n");
            return -1;
        }
    }

   if(param == 30){
        if((value != 1)&&(value != 2)&&(value != 6)){
            rt_kprintf("param of Txrate is just 1,2,6\n\n");
            return -1;
        }

   }
                
    switch(param){

    case 0:
        if(value > 9999){
                rt_kprintf("invalid  ID!!\n");
                return -1;
        }    
        cfg_param->pid[0] = value/1000;
        cfg_param->pid[1] = (value%1000)/100;
        cfg_param->pid[2] = ((value%1000)%100)/10;
        cfg_param->pid[3] =    ((value%1000)%100)%10;
        break;

    case 1:
        cfg_param->vam.bsm_hops = value;
        break;
    case 2:
        cfg_param->vam.bsm_boardcast_mode = value;
        break;        
    case 3:
        cfg_param->vam.bsm_boardcast_saftyfactor = value;
        break;
    case 4:
        cfg_param->vam.bsm_pause_mode = value;
        break;
    case 5:
        cfg_param->vam.bsm_pause_hold_time = value;
        break;
    case 6:
        cfg_param->vam.bsm_boardcast_period = value;
        break;
        
    case 7:
        cfg_param->vam.evam_hops = value;
        break;
    case 8:
        cfg_param->vam.evam_broadcast_type = value;
        break;
    case 9:
        cfg_param->vam.evam_broadcast_peroid = value;
        break;            


        
    case 10:
        cfg_param->vsa.danger_detect_speed_threshold = value;
        break;
    case 11:
        cfg_param->vsa.lane_dis = value;
        
        break;            
    case 12:
        cfg_param->vsa.crd_saftyfactor = value;
        break;
    case 13:
        cfg_param->vsa.crd_oppsite_speed = value;
        break;
    case 14:
        cfg_param->vsa.crd_oppsite_rear_speed = value;
        break;
    case 15:
        cfg_param->vsa.crd_rear_distance = value;
        break;

        
    case 16:
        cfg_param->vsa.ebd_mode = value;
        break;
    case 17:
        cfg_param->vsa.ebd_acceleration_threshold = value;
        break;            
    case 18:
        cfg_param->vsa.ebd_alert_hold_time = value;
        break;

    case 19:
        cfg_param->gsnr.gsnr_cal_step = value;
        break;
    case 20:
        cfg_param->gsnr.gsnr_cal_thr = value;
        break;
    case 21:
        cfg_param->gsnr.gsnr_ebd_thr = value;
        break;
    case 22:
        cfg_param->gsnr.gsnr_ebd_cnt = value;
        break;

    case 23:
        cfg_param->gsnr.AcceV_x = value;
        break;
    case 24:
        cfg_param->gsnr.AcceV_y = value;
        break;
    case 25:
        cfg_param->gsnr.AcceV_z = value;
        break;
    case 26:
        cfg_param->gsnr.AcceAhead_x = value;
        break;
    case 27:
        cfg_param->gsnr.AcceAhead_y = value;
        break;
    case 28:
        cfg_param->gsnr.AcceAhead_z = value;
        break;

        
    case 29:
        cfg_param->wnet.channel = value;
        break;

    case 30:
        cfg_param->wnet.txrate = value;
        break;
        
    case 31:
        cfg_param->print_xxx = value;
        break;
        
    case 32:
        cfg_param->voc.fg_volume = value;
        break;
    case 33:
        cfg_param->voc.bg_volume = value;
        break;
    case 34:
        cfg_param->voc.speed = value;
        break;
        
    default:          
        rt_kprintf("invalid  parameter  number!!\n");
        break;

    }

    memcpy((uint8_t*)&cms_param,(uint8_t*)cfg_param,sizeof(cfg_param_t));


    rt_kprintf("param is setting .....please don't power off!\n");
        
    drv_fls_erase(PARAM_SECTOR);
    drv_fls_write(PARAM_FLAG_ADDR,param_init_words,sizeof(param_init_words));
    drv_fls_write(PARAM_MODE_ADDR,(uint8_t *)&mode,sizeof(uint16_t));
    
    drv_fls_write(PARAM_ADDR_CUSTOM,(uint8_t*)&all_param[0],sizeof(cfg_param_t));
    drv_fls_write(PARAM_ADDR_HIGHWAY,(uint8_t*)&all_param[1],sizeof(cfg_param_t));
    drv_fls_write(PARAM_ADDR_MOUNTAIN,(uint8_t*)&all_param[2],sizeof(cfg_param_t));
    err = drv_fls_write(PARAM_ADDR_CITY,(uint8_t*)&all_param[3],sizeof(cfg_param_t));

    if(err == -1){
        rt_kprintf("parameter writing process error!!!\n");
    }
    else{
        rt_kprintf("parameter set success!\n");
    }

    cfg_param = NULL;

    return 0;

}