unsigned char gps_get_status(void) { unsigned char data[GPS_STATUS_SIZE+2]; unsigned char i; dlc_i2c_configure(GPS_DEVICE_ADDR, 100); dlc_i2c_send_byte(GPS_STATUS_ID); for(i=0;i<(GPS_STATUS_SIZE+2);i++) { data[i] = dlc_i2c_receive_byte(); } return data[2]; }
float gps_get_latitude(void) { unsigned char data[GPS_LATITUDE_SIZE+2]; unsigned char i; dlc_i2c_configure(GPS_DEVICE_ADDR, 100); dlc_i2c_send_byte(GPS_LATITUDE_ID); for(i=0;i<(GPS_LATITUDE_SIZE+2);i++) { data[i] = dlc_i2c_receive_byte(); } return atof(&data[2]); }
unsigned char gps_get_sate_in_veiw(void) { unsigned char data[GPS_SATE_IN_VIEW_SIZE+2]; unsigned char i; dlc_i2c_configure(GPS_DEVICE_ADDR, 100); dlc_i2c_send_byte(GPS_SATE_IN_VIEW_ID); for(i=0;i<(GPS_SATE_IN_VIEW_SIZE+2);i++) { data[i] = dlc_i2c_receive_byte(); } return data[2]; }
unsigned char gps_get_position_fix(void) { unsigned char data[GPS_POSITION_FIX_SIZE+2]; unsigned char i; dlc_i2c_configure(GPS_DEVICE_ADDR, 100); dlc_i2c_send_byte(GPS_POSITION_FIX_ID); for(i=0;i<(GPS_POSITION_FIX_SIZE+2);i++) { data[i] = dlc_i2c_receive_byte(); } return data[2]; }
VMUINT8 led_matrix_check_on_line() { VMUINT8 DataBuf[4] = {0}; dlc_i2c_configure(LEDAddress, 100); DataBuf[0] = dlc_i2c_receive_byte(NULL); DataBuf[1] = dlc_i2c_receive_byte(NULL); DataBuf[2] = dlc_i2c_receive_byte(NULL); DataBuf[3] = dlc_i2c_receive_byte(NULL); //m_log_info("led matrix check data is %x %x %x %x",DataBuf[0],DataBuf[1],DataBuf[2],DataBuf[3]); if(DataBuf[3] == LEDAddress) { //vm_log_info("led matrix is on line."); return TRUE; } else { //vm_log_info("led matrix is not on line."); return FALSE; } }
unsigned char gps_get_ew(void) { unsigned char data[GPS_EW_SIZE+2]; unsigned char i; dlc_i2c_configure(GPS_DEVICE_ADDR, 100); dlc_i2c_send_byte(GPS_EW_ID); for(i=0;i<(GPS_EW_SIZE+2);i++) { data[i] = dlc_i2c_receive_byte(); } if(data[2] == 'E' || data[2] == 'W')return data[2]; else return data[2] = '-'; }
unsigned char gps_check_online(void) { unsigned char data[GPS_SCAN_SIZE+2]; unsigned char i; dlc_i2c_configure(GPS_DEVICE_ADDR, 100); dlc_i2c_send_byte(GPS_SCAN_ID); for(i=0;i<(GPS_SCAN_SIZE+2);i++) { data[i] = dlc_i2c_receive_byte(); } if(data[5] == GPS_DEVICE_ADDR)return 1; else return 0; }
unsigned char* gps_get_utc_date_time(void) { unsigned char data[GPS_UTC_DATE_TIME_SIZE+2]; unsigned char i; dlc_i2c_configure(GPS_DEVICE_ADDR, 100); dlc_i2c_send_byte(GPS_UTC_DATE_TIME_ID); for(i=0;i<(GPS_UTC_DATE_TIME_SIZE+2);i++) { data[i] = dlc_i2c_receive_byte(); } for(i=0;i<GPS_UTC_DATE_TIME_SIZE;i++) gps_utc_date_time[i] = data[i+2]; return gps_utc_date_time; }
unsigned char gps_get_sate_used(void) { unsigned char data[GPS_SATE_USED_SIZE+2]; unsigned char i; unsigned char value; dlc_i2c_configure(GPS_DEVICE_ADDR, 100); dlc_i2c_send_byte(GPS_SATE_USED_ID); for(i=0;i<(GPS_SATE_USED_SIZE+2);i++) { data[i] = dlc_i2c_receive_byte(); } if(data[3] >= '0' && data[3] <= '9')value = (data[3] - '0') * 10; else value = 0; if(data[2] >= '0' && data[2] <= '9')value += (data[2] - '0'); else value += 0; return value; }