//------------------------------------------------------ unsigned int get_compass_position_360(void) { int ttys_descriptor; int bytes_arrived = 0; unsigned char buffer_in[MAX_LEN_BUFFER]; float ret_value; while(1) { ttys_descriptor = init_serial_port(); write_cmd(ttys_descriptor,0x12); sleep(1); bytes_arrived = rs232_buffer_in_lenght(ttys_descriptor); if (bytes_arrived != ANSWER_CMD_360_POS_LENGHT) { printf("ERROR: Re-send command (360) to serial port, bytes arrived:%d\n",bytes_arrived); rs232_close(ttys_descriptor); continue; } break; } rs232_get(ttys_descriptor,buffer_in, ANSWER_CMD_360_POS_LENGHT); ret_value = (((float)buffer_in[0]) * 360)/255; rs232_close(ttys_descriptor); return (unsigned int)ret_value; }
//------------------------------------------------------ void reset_cmps10() { int ttys_descriptor; int bytes_arrived; unsigned char buffer_in[MAX_LEN_BUFFER],cmd_1,cmd_2,cmd_3; // Open serial port ttys_descriptor = rs232_open(SERIAL_PORT,B9600,CS8,PNONE,SB1); // Test port descriptor if(ttys_descriptor == -1) {printf("ERROR:serial port not open,exit!!!");exit(1);} // Command to send cmd_1 = 0x6A;cmd_2 = 0x7C;cmd_3 = 0x81; // Send request 0x23 bytes_arrived = 0; rs232_write(ttys_descriptor,&cmd_1,1); usleep(50000); bytes_arrived = rs232_bytes_arrived(ttys_descriptor,0); rs232_get(ttys_descriptor,buffer_in, 1); printf("Bytes arrived %d - Value %d\n",bytes_arrived,buffer_in[0]); rs232_write(ttys_descriptor,&cmd_2,1); usleep(50000); bytes_arrived = rs232_bytes_arrived(ttys_descriptor,0); rs232_get(ttys_descriptor,buffer_in, 1); printf("Bytes arrived %d - Value %d\n",bytes_arrived,buffer_in[0]); rs232_write(ttys_descriptor,&cmd_3,1); usleep(50000); bytes_arrived = rs232_bytes_arrived(ttys_descriptor,0); rs232_get(ttys_descriptor,buffer_in, 1); printf("Bytes arrived %d - Value %d\n",bytes_arrived,buffer_in[0]); rs232_close(ttys_descriptor); }
//---------------------------------------------------- void get_compass_data_full(unsigned char *buffer_in) { int ttys_descriptor; int bytes_arrived = 0; while(1) { ttys_descriptor = init_serial_port(); write_cmd(ttys_descriptor,0x23); sleep(1); bytes_arrived = rs232_buffer_in_lenght(ttys_descriptor); if (bytes_arrived != ANSWER_CMD_FULL_LENGHT) { printf("ERROR: Re-send command (FULL) to serial port, bytes arrived:%d\n",bytes_arrived); rs232_close(ttys_descriptor); continue; } break; } rs232_get(ttys_descriptor,buffer_in, ANSWER_CMD_FULL_LENGHT); rs232_close(ttys_descriptor); }
u8_t slipdev_char_poll(u8_t *c) { return (rs232_get(c) != RS_ERR_NO_DATA); }