add some CAN commands

This commit is contained in:
eddyem 2018-08-02 21:55:24 +03:00
parent 9fc1fd7ad6
commit 6c261ff7c6
11 changed files with 199 additions and 182 deletions

View File

@ -3,24 +3,23 @@
Make regular scan of 8 sensors' pairs.
USART speed 115200. Code for ../../kicad/stm32
### Serial interface commands (ends with '\n'):
- **0...9** - wait measurements of T from Nth controller (0==T for master)
- **A** send everybody to start T measurement
### Serial interface commands (ends with '\n'), small letter for only local processing:
- **0...9** - wait measurements of T from Nth controller (0==current controller)
- **B** send dummy CAN messages to broadcast address
- **C** show coefficients for all thermosensors
- **c** show coefficients for all thermosensors
- **D** send dummy CAN messages to master (0) address
- **E** end temperature scan
- **F** turn sensors off
- **G** get CAN address
- **H** switch I2C to high speed (100kHz)
- **I** reinit CAN
- **L** switch I2C to low speed (default, 10kHz)
- **O** turn sensors on
- **Ee** end temperature scan
- **Ff** turn sensors off
- **g** get last CAN address
- **Hh** switch I2C to high speed (100kHz)
- **i** reinit CAN
- **Ll** switch I2C to low speed (default, 10kHz)
- **P** ping everyone over CAN
- **R** reinit I2C
- **S** start temperature scan
- **T** start single temperature measurement
- **V** very low speed
- **Rr** reinit I2C
- **Ss** start temperature scan
- **Tt** start single temperature measurement
- **u** check CAN bus status for errors
- **Vv** very low speed
- **Z** get sensors state over CAN
### PINOUT

View File

@ -160,15 +160,13 @@ void can_proc(){
can_process_fifo(1);
}
if(CAN->ESR & (CAN_ESR_BOFF | CAN_ESR_EPVF | CAN_ESR_EWGF)){ // much errors - restart CAN BUS
LED_off(LED1);
MSG("bus-off, restarting\n");
#pragma message "TODO: let 2 know main() about problems in CANbus"
// request abort for all mailboxes
CAN->TSR |= CAN_TSR_ABRQ0 | CAN_TSR_ABRQ1 | CAN_TSR_ABRQ2;
// reset CAN bus
RCC->APB1RSTR |= RCC_APB1RSTR_CANRST;
RCC->APB1RSTR &= ~RCC_APB1RSTR_CANRST;
CAN_setup();
can_status = CAN_ERROR;
}
#ifdef EBUG
static uint32_t esr, msr, tsr;

View File

@ -43,11 +43,13 @@ typedef struct{
} CAN_message;
typedef enum{
CAN_STOP,
CAN_READY,
CAN_BUSY,
CAN_OK,
CAN_FIFO_OVERRUN
CAN_NOTMASTER, // can't send command - not a mastar
CAN_STOP, // CAN stopped
CAN_READY, // ready to send
CAN_BUSY, // bus is busy
CAN_OK, // all OK?
CAN_FIFO_OVERRUN, // FIFO overrun
CAN_ERROR // no recipients on bus or too many errors
} CAN_status;
CAN_status CAN_get_status();

View File

@ -62,6 +62,27 @@ void can_messages_proc(){
case CMD_START_MEASUREMENT:
sensors_start();
break;
case CMD_START_SCAN:
sensors_scan_mode = 1;
break;
case CMD_STOP_SCAN:
sensors_scan_mode = 0;
break;
case CMD_SENSORS_OFF:
sensors_off();
break;
case CMD_LOWEST_SPEED:
i2c_setup(VERYLOW_SPEED);
break;
case CMD_LOW_SPEED:
i2c_setup(LOW_SPEED);
break;
case CMD_HIGH_SPEED:
i2c_setup(HIGH_SPEED);
break;
case CMD_REINIT_I2C:
i2c_setup(CURRENT_SPEED);
break;
}
}else if(data[0] == DATA_MARK){ // process received data
if(len < 3) return;
@ -115,7 +136,7 @@ static CAN_status try2send(uint8_t *buf, uint8_t len, uint16_t id){
* @param cmd - command to send
*/
CAN_status can_send_cmd(uint16_t targetID, uint8_t cmd){
if(Controller_address != 0 && cmd != CMD_DUMMY0 && cmd != CMD_DUMMY1) return CAN_OK;
if(Controller_address != 0 && cmd != CMD_DUMMY0 && cmd != CMD_DUMMY1) return CAN_NOTMASTER;
uint8_t buf[2];
buf[0] = COMMAND_MARK;
buf[1] = cmd;
@ -163,10 +184,14 @@ int8_t send_temperatures(int8_t N){
can_data[1] = a*10 + p;
//char b[] = {'T', a+'0', p+'0', '=', '+'};
int16_t t = Temperatures[a][p];
can_data[2] = t>>8; // H byte
can_data[3] = t&0xff; // L byte
if(CAN_OK == can_send_data(can_data, 4)){ // OK, calculate next address
if(t == BAD_TEMPERATURE || t == NO_SENSOR){ // don't send data if it's absent on current measurement
++retn;
}else{
can_data[2] = t>>8; // H byte
can_data[3] = t&0xff; // L byte
if(CAN_OK == can_send_data(can_data, 4)){ // OK, calculate next address
++retn;
}
}
return retn;
}

View File

@ -34,6 +34,13 @@ typedef enum{
CMD_PING, // request for PONG cmd
CMD_START_MEASUREMENT, // start thermal measurement
CMD_SENSORS_STATE, // reply data with sensors state
CMD_START_SCAN, // run scan mode @ all controllers
CMD_STOP_SCAN, // stop scan mode
CMD_SENSORS_OFF, // turn off power of sensors
CMD_LOWEST_SPEED, // lowest I2C speed
CMD_LOW_SPEED, // low I2C speed (10kHz)
CMD_HIGH_SPEED, // high I2C speed (100kHz)
CMD_REINIT_I2C, // reinit I2C with current speed
// dummy commands for test purposes
CMD_DUMMY0 = 0xDA,
CMD_DUMMY1 = 0xAD

View File

@ -72,7 +72,7 @@ void CANsend(uint16_t targetID, uint8_t cmd, char echo){
int main(void){
uint32_t lastT = 0, lastS = 0;
int16_t L = 0, ID;
uint8_t gotmeasurement = 0;
uint8_t gotmeasurement = 0, canerror = 0;
char *txt;
sysreset();
SysTick_Config(6000, 1);
@ -107,24 +107,23 @@ int main(void){
lastS = Tms;
}
can_proc();
if(CAN_get_status() == CAN_FIFO_OVERRUN){
CAN_status stat = CAN_get_status();
if(stat == CAN_FIFO_OVERRUN){
SEND("CAN bus fifo overrun occured!\n");
}else if(stat == CAN_ERROR){
LED_off(LED1);
CAN_setup();
canerror = 1;
}
can_messages_proc();
//if(sensors_scan_mode){
if(SENS_SLEEPING == sensors_get_state()){ // show temperature @ each sleeping occurence
if(!gotmeasurement){
//SEND("\nTIME=");
//printu(Tms);
//usart_putchar('\t');
//newline();
gotmeasurement = 1;
showtemperature();
}
}else{
gotmeasurement = 0;
if(SENS_SLEEPING == sensors_get_state()){ // show temperature @ each sleeping occurence
if(!gotmeasurement){
gotmeasurement = 1;
showtemperature();
}
//}
}else{
gotmeasurement = 0;
}
if(usartrx()){ // usart1 received data, store in in buffer
L = usart_getline(&txt);
char _1st = txt[0];
@ -134,109 +133,112 @@ int main(void){
ID = (CAN_ID_PREFIX & CAN_ID_MASK) | (_1st - '0');
CANsend(ID, CMD_START_MEASUREMENT, _1st);
}else switch(_1st){
case 'A':
CANsend(BCAST_ID, CMD_START_MEASUREMENT, _1st);
if(!sensors_scan_mode) sensors_start();
break;
case 'B':
CANsend(BCAST_ID, CMD_DUMMY0, _1st);
break;
case 'C': // 'C' - show coefficients
case 'c':
showcoeffs();
break;
case 'D':
CANsend(MASTER_ID, CMD_DUMMY1, _1st);
break;
case 'E':
CANsend(BCAST_ID, CMD_STOP_SCAN, _1st);
case 'e':
SEND("End scan mode\n");
sensors_scan_mode = 0;
break;
case 'F':
CANsend(BCAST_ID, CMD_SENSORS_OFF, _1st);
case 'f':
SEND("Turn off sensors\n");
sensors_off();
break;
case 'G':
case 'g':
SEND("Can address: ");
printuhex(getCANID());
newline();
break;
case 'H':
CANsend(BCAST_ID, CMD_HIGH_SPEED, _1st);
case 'h':
i2c_setup(HIGH_SPEED);
SEND("High speed\n");
break;
case 'I':
case 'i':
CAN_reinit();
SEND("Can address: ");
printuhex(getCANID());
newline();
break;
case 'L':
CANsend(BCAST_ID, CMD_LOW_SPEED, _1st);
case 'l':
i2c_setup(LOW_SPEED);
SEND("Low speed\n");
break;
case 'O':
/*case 'o':
sensors_on();
break;
break;*/
case 'P':
CANsend(BCAST_ID, CMD_PING, _1st);
break;
case 'R':
CANsend(BCAST_ID, CMD_REINIT_I2C, _1st);
case 'r':
i2c_setup(CURRENT_SPEED);
SEND("Reinit I2C\n");
break;
case 'S':
CANsend(BCAST_ID, CMD_START_SCAN, _1st);
case 's':
SEND("Start scan mode\n");
sensors_scan_mode = 1;
break;
case 'T':
CANsend(BCAST_ID, CMD_START_MEASUREMENT, _1st);
case '0':
case 'T': // 'T' - get temperature
case 't':
if(!sensors_scan_mode) sensors_start();
break;
case 'u':
SEND("CANERROR=");
if(canerror){
canerror = 0;
usart_putchar('1');
}else usart_putchar('0');
newline();
break;
case 'V':
CANsend(BCAST_ID, CMD_LOWEST_SPEED, _1st);
case 'v':
i2c_setup(VERYLOW_SPEED);
SEND("Very low speed\n");
break;
case 'Z':
CANsend(BCAST_ID, CMD_SENSORS_STATE, _1st);
break;
#if 0
case 'd':
case 'g':
case 't':
case 's':
senstest(_1st);
break;
case 'p':
sensors_process();
break;
#endif
default: // help
SEND(
"0..7 - start measurement on given controller\n"
"A - start measurement on all controllers\n"
"ALL little letters - without CAN messaging\n"
"0..7 - start measurement on given controller (0 - this)\n"
"B - send broadcast CAN dummy message\n"
"C - show coefficients\n"
"c - show coefficients (current)\n"
"D - send CAN dummy message to master\n"
"E - end themperature scan\n"
"F - turn oFf sensors\n"
"G - get CAN address\n"
"H - high speed\n"
"I - reinit CAN\n"
"L - low speed\n"
"O - turn On sensors\n"
"Ee- end themperature scan\n"
"Ff- turn oFf sensors\n"
"g - get last CAN address\n"
"Hh- high I2C speed\n"
"i - reinit CAN (with new address)\n"
"Ll- low I2C speed\n"
// "o - turn On sensors\n"
"P - ping everyone over CAN\n"
"R - reinit I2C\n"
"S - Start themperature scan\n"
"T - start temperature measurement\n"
"V - very low speed\n"
"Rr- reinit I2C\n"
"Ss- Start themperature scan\n"
"Tt- start temperature measurement\n"
"u - check CAN status for errors\n"
"Vv- very low I2C speed\n"
"Z - get sensors state over CAN\n"
#if 0
"\t\tTEST OPTIONS\n"
"d - discovery\n"
"g - get coeff\n"
"t - measure temper\n"
"s - show temper measured\n"
"p - sensors_process()\n"
#endif
);
break;
}

View File

@ -117,16 +117,6 @@ void sensors_start(){
}
}
/* / count bits in byte
static uint8_t bitCount(uint8_t B){
uint8_t ctr = 0;
while(B){
++ctr;
B &= (B - 1);
}
return ctr;
}*/
// count 1 bits in sens_present & set `Nsens_present` to this value
static void count_sensors(){
Nsens_present = 0;
@ -135,10 +125,6 @@ static void count_sensors(){
++Nsens_present;
B &= (B - 1);
}
/* / reset temperature values
uint16_t *t = Temperatures;
for(B = 0; B < 2*(MUL_MAX_ADDRESS+1); ++B)
*t++ = BAD_TEMPERATURE; */
}
/**
@ -415,14 +401,8 @@ SEND(" sensors ->start\n");
case SENS_GATHERING: // scan all sensors, get thermal data & calculate temperature
if(sensors_scan(gettempproc)){
lastSensT = Tms;
if(Nsens_present != Ntemp_measured){
i2c_setup(CURRENT_SPEED);
sensors_on();
}
else{
NsentOverCAN = 0;
Sstate = SENS_SLEEPING;
}
NsentOverCAN = 0;
Sstate = SENS_SLEEPING;
//MSG("->sleep\n");
/*
if(Nsens_present == Ntemp_measured){ // All OK, amount of T == amount of sensors
@ -437,10 +417,16 @@ MSG("gather error ->start\n");
break;
case SENS_SLEEPING: // wait for `SLEEP_TIME` till next measurements
NsentOverCAN = send_temperatures(NsentOverCAN); // call sending T process
if(sensors_scan_mode){ // sleep until next measurement start
if(Tms - lastSensT > SLEEP_TIME){
//MSG("sleep->start\n");
Sstate = SENS_START_MSRMNT;
if(NsentOverCAN == -1){
if(Nsens_present != Ntemp_measured){ // restart sensors only after measurements sent
i2c_setup(CURRENT_SPEED);
sensors_on();
}
if(sensors_scan_mode){ // sleep until next measurement start
if(Tms - lastSensT > SLEEP_TIME){
//MSG("sleep->start\n");
Sstate = SENS_START_MSRMNT;
}
}
}
break;
@ -452,37 +438,3 @@ MSG("gather error ->start\n");
break;
}
}
#if 0
void senstest(char cmd){
MUL_OFF();
SENSORS_ON();
if(SENSORS_OVERCURNT()){
SENSORS_OFF();
SEND("Overcurrent!\n");
return;
}
curr_mul_addr = 0;
MUL_ADDRESS(0);
MUL_ON();
switch (cmd){
case 'd': // discovery once
resetproc();
count_sensors();
break;
case 'g':
getcoefsproc();
break;
case 't':
msrtempproc();
break;
case 's':
gettempproc();
showtemperature();
break;
default:
return;
}
Sstate = SENS_OFF;
}
#endif

View File

@ -28,8 +28,8 @@
// time for power up procedure (500ms)
#define POWERUP_TIME (500)
// time between two readings (3sec)
#define SLEEP_TIME (3000)
// time between readings in scan mode (15sec)
#define SLEEP_TIME (15000)
// error in measurement == -300degrC
#define BAD_TEMPERATURE (-30000)
// no sensor on given channel

Binary file not shown.

View File

@ -94,7 +94,7 @@ ADC_TR_HT
ADC_TR_LTÌ65536Ö0
AHB2PERIPH_BASEÌ65536Ö0
AHBPERIPH_BASEÌ65536Ö0
ALL_OKÌ4Îanon_enum_5Ö0
ALL_OKÌ4Îanon_enum_3Ö0
APBPERIPH_BASEÌ65536Ö0
BAD_TEMPERATUREÌ65536Ö0
BCAST_IDÌ65536Ö0
@ -117,6 +117,7 @@ CAN_BTR_TS2_0
CAN_BTR_TS2_1Ì65536Ö0
CAN_BTR_TS2_2Ì65536Ö0
CAN_BUSYÌ4Îanon_enum_2Ö0
CAN_ERRORÌ4Îanon_enum_2Ö0
CAN_ESR_BOFFÌ65536Ö0
CAN_ESR_EPVFÌ65536Ö0
CAN_ESR_EWGFÌ65536Ö0
@ -1119,6 +1120,7 @@ CAN_MSR_SLAK
CAN_MSR_SLAKIÌ65536Ö0
CAN_MSR_TXMÌ65536Ö0
CAN_MSR_WKUIÌ65536Ö0
CAN_NOTMASTERÌ4Îanon_enum_2Ö0
CAN_OKÌ4Îanon_enum_2Ö0
CAN_RDH0R_DATA4Ì65536Ö0
CAN_RDH0R_DATA5Ì65536Ö0
@ -1289,26 +1291,54 @@ CEC_TXDR_RXD
CEC_TXDR_TXDÌ65536Ö0
CLEAR_BITÌ131072Í(REG,BIT)Ö0
CLEAR_REGÌ131072Í(REG)Ö0
CMD_DUMMY0Ì4Îanon_enum_3Ö0
CMD_DUMMY0Ì4Îanon_enum_6Ö0
CMD_DUMMY0Ì4Îanon_enum_4Ö0
CMD_DUMMY0Ì4Îanon_enum_5Ö0
CMD_DUMMY0Ì4Îanon_enum_7Ö0
CMD_DUMMY0Ì4Îanon_enum_8Ö0
CMD_DUMMY1Ì4Îanon_enum_3Ö0
CMD_DUMMY1Ì4Îanon_enum_6Ö0
CMD_DUMMY1Ì4Îanon_enum_4Ö0
CMD_DUMMY1Ì4Îanon_enum_5Ö0
CMD_DUMMY1Ì4Îanon_enum_7Ö0
CMD_DUMMY1Ì4Îanon_enum_8Ö0
CMD_PINGÌ4Îanon_enum_3Ö0
CMD_PINGÌ4Îanon_enum_6Ö0
CMD_HIGH_SPEEDÌ4Îanon_enum_4Ö0
CMD_HIGH_SPEEDÌ4Îanon_enum_5Ö0
CMD_HIGH_SPEEDÌ4Îanon_enum_7Ö0
CMD_HIGH_SPEEDÌ4Îanon_enum_8Ö0
CMD_LOWEST_SPEEDÌ4Îanon_enum_4Ö0
CMD_LOWEST_SPEEDÌ4Îanon_enum_5Ö0
CMD_LOWEST_SPEEDÌ4Îanon_enum_7Ö0
CMD_LOWEST_SPEEDÌ4Îanon_enum_8Ö0
CMD_LOW_SPEEDÌ4Îanon_enum_4Ö0
CMD_LOW_SPEEDÌ4Îanon_enum_5Ö0
CMD_LOW_SPEEDÌ4Îanon_enum_7Ö0
CMD_LOW_SPEEDÌ4Îanon_enum_8Ö0
CMD_PINGÌ4Îanon_enum_4Ö0
CMD_PINGÌ4Îanon_enum_5Ö0
CMD_PINGÌ4Îanon_enum_7Ö0
CMD_PINGÌ4Îanon_enum_8Ö0
CMD_SENSORS_STATEÌ4Îanon_enum_3Ö0
CMD_SENSORS_STATEÌ4Îanon_enum_6Ö0
CMD_REINIT_I2CÌ4Îanon_enum_4Ö0
CMD_REINIT_I2CÌ4Îanon_enum_5Ö0
CMD_REINIT_I2CÌ4Îanon_enum_7Ö0
CMD_REINIT_I2CÌ4Îanon_enum_8Ö0
CMD_SENSORS_OFFÌ4Îanon_enum_4Ö0
CMD_SENSORS_OFFÌ4Îanon_enum_5Ö0
CMD_SENSORS_OFFÌ4Îanon_enum_7Ö0
CMD_SENSORS_OFFÌ4Îanon_enum_8Ö0
CMD_SENSORS_STATEÌ4Îanon_enum_4Ö0
CMD_SENSORS_STATEÌ4Îanon_enum_5Ö0
CMD_SENSORS_STATEÌ4Îanon_enum_7Ö0
CMD_SENSORS_STATEÌ4Îanon_enum_8Ö0
CMD_START_MEASUREMENTÌ4Îanon_enum_3Ö0
CMD_START_MEASUREMENTÌ4Îanon_enum_6Ö0
CMD_START_MEASUREMENTÌ4Îanon_enum_4Ö0
CMD_START_MEASUREMENTÌ4Îanon_enum_5Ö0
CMD_START_MEASUREMENTÌ4Îanon_enum_7Ö0
CMD_START_MEASUREMENTÌ4Îanon_enum_8Ö0
CMD_START_SCANÌ4Îanon_enum_4Ö0
CMD_START_SCANÌ4Îanon_enum_5Ö0
CMD_START_SCANÌ4Îanon_enum_7Ö0
CMD_START_SCANÌ4Îanon_enum_8Ö0
CMD_STOP_SCANÌ4Îanon_enum_4Ö0
CMD_STOP_SCANÌ4Îanon_enum_5Ö0
CMD_STOP_SCANÌ4Îanon_enum_7Ö0
CMD_STOP_SCANÌ4Îanon_enum_8Ö0
COMMAND_MARKÌ65536Ö0
CONCATÌ131072Í(a,b)Ö0
CONV_TIMEÌ65536Ö0
@ -2247,7 +2277,7 @@ LED1_port
LED_blinkÌ131072Í(x)Ö0
LED_offÌ131072Í(x)Ö0
LED_onÌ131072Í(x)Ö0
LINE_BUSYÌ4Îanon_enum_5Ö0
LINE_BUSYÌ4Îanon_enum_3Ö0
LOW_SPEEDÌ4Îanon_enum_0Ö0
MASTER_IDÌ65536Ö0
MODIFY_REGÌ131072Í(REG,CLEARMASK,SETMASK)Ö0
@ -2888,16 +2918,16 @@ SEND_TIMEOUT_MS
SENSORS_OFFÌ131072Í()Ö0
SENSORS_ONÌ131072Í()Ö0
SENSORS_OVERCURNTÌ131072Í()Ö0
SENS_GATHERINGÌ4Îanon_enum_4Ö0
SENS_GET_COEFFSÌ4Îanon_enum_4Ö0
SENS_INITINGÌ4Îanon_enum_4Ö0
SENS_OFFÌ4Îanon_enum_4Ö0
SENS_OVERCURNTÌ4Îanon_enum_4Ö0
SENS_OVERCURNT_OFFÌ4Îanon_enum_4Ö0
SENS_RESETINGÌ4Îanon_enum_4Ö0
SENS_SLEEPINGÌ4Îanon_enum_4Ö0
SENS_START_MSRMNTÌ4Îanon_enum_4Ö0
SENS_WAITINGÌ4Îanon_enum_4Ö0
SENS_GATHERINGÌ4Îanon_enum_6Ö0
SENS_GET_COEFFSÌ4Îanon_enum_6Ö0
SENS_INITINGÌ4Îanon_enum_6Ö0
SENS_OFFÌ4Îanon_enum_6Ö0
SENS_OVERCURNTÌ4Îanon_enum_6Ö0
SENS_OVERCURNT_OFFÌ4Îanon_enum_6Ö0
SENS_RESETINGÌ4Îanon_enum_6Ö0
SENS_SLEEPINGÌ4Îanon_enum_6Ö0
SENS_START_MSRMNTÌ4Îanon_enum_6Ö0
SENS_WAITINGÌ4Îanon_enum_6Ö0
SET_BITÌ131072Í(REG,BIT)Ö0
SIG_ATOMIC_MAXÌ65536Ö0
SIG_ATOMIC_MINÌ65536Ö0
@ -2983,7 +3013,7 @@ STM32F0
STM32F042x6Ì65536Ö0
STRÌ131072Í(s)Ö0
STR_HELPERÌ131072Í(s)Ö0
STR_TOO_LONGÌ4Îanon_enum_5Ö0
STR_TOO_LONGÌ4Îanon_enum_3Ö0
SYSCFGÌ65536Ö0
SYSCFG_BASEÌ65536Ö0
SYSCFG_CFGR1_ADC_DMA_RMPÌ65536Ö0
@ -3115,7 +3145,7 @@ SYSCFG_EXTICR4_EXTI15_PB
SYSCFG_EXTICR4_EXTI15_PCÌ65536Ö0
SYSCFG_EXTICR4_EXTI15_PDÌ65536Ö0
SYSCFG_EXTICR4_EXTI15_PEÌ65536Ö0
SensorsStateÌ4096Ö0Ïanon_enum_4
SensorsStateÌ4096Ö0Ïanon_enum_6
SstateÌ16384Ö0ÏSensorsState
StartHSEÌ16Í()Ö0Ïinline void
StartHSI48Ì16Í()Ö0Ïinline void
@ -3558,7 +3588,7 @@ TSYS01_ADDR1
TSYS01_PROM_ADDR0Ì65536Ö0
TSYS01_RESETÌ65536Ö0
TSYS01_START_CONVÌ65536Ö0
TXstatusÌ4096Ö0Ïanon_enum_5
TXstatusÌ4096Ö0Ïanon_enum_3
TaddrÌ16384Ö0Ïconst uint8_t
TemperaturesÌ16384Ö0Ïint16_t
TemperaturesÌ32768Ö0Ïint16_t

View File

@ -27,16 +27,18 @@ long_line_behaviour=1
long_line_column=100
[files]
current_page=8
FILE_NAME_0=6740;C;0;EKOI8-R;0;1;0;%2Fhome%2Feddy%2FDocs%2FSAO%2FBTA%2FMIRROR_CONTROL_termo%2FProject%2FSTM32src%2FTSYS_controller%2Fcan.c;0;4
FILE_NAME_1=1189;C;0;EKOI8-R;0;1;0;%2Fhome%2Feddy%2FDocs%2FSAO%2FBTA%2FMIRROR_CONTROL_termo%2FProject%2FSTM32src%2FTSYS_controller%2Fcan.h;0;4
FILE_NAME_2=2113;C;0;EUTF-8;0;1;0;%2Fhome%2Feddy%2FDocs%2FSAO%2FBTA%2FMIRROR_CONTROL_termo%2FProject%2FSTM32src%2FTSYS_controller%2Fmain.c;0;4
FILE_NAME_3=10188;C;0;EKOI8-R;0;1;0;%2Fhome%2Feddy%2FDocs%2FSAO%2FBTA%2FMIRROR_CONTROL_termo%2FProject%2FSTM32src%2FTSYS_controller%2Fsensors_manage.c;0;4
FILE_NAME_4=8248;C;0;EKOI8-R;0;1;0;%2Fhome%2Feddy%2FDocs%2FSAO%2FELECTRONICS%2FSTM32%2FF0-srcs%2Fcanbus%2Fsrc%2Fcan.c;0;4
FILE_NAME_5=3404;C;0;EUTF-8;0;1;0;%2Fhome%2Feddy%2FDocs%2FSAO%2FELECTRONICS%2FSTM32%2FF0-srcs%2Fcanbus%2Fsrc%2Fmain.c;0;4
FILE_NAME_6=1593;C;0;EUTF-8;0;1;0;%2Fhome%2Feddy%2FDocs%2FSAO%2FBTA%2FMIRROR_CONTROL_termo%2FProject%2FSTM32src%2FTSYS_controller%2Fcan_process.c;0;4
FILE_NAME_7=1165;C;0;EUTF-8;0;1;0;%2Fhome%2Feddy%2FDocs%2FSAO%2FBTA%2FMIRROR_CONTROL_termo%2FProject%2FSTM32src%2FTSYS_controller%2Fcan_process.h;0;4
FILE_NAME_8=0;C;0;EKOI8-R;0;1;0;%2Fhome%2Feddy%2FDocs%2FSAO%2FBTA%2FMIRROR_CONTROL_termo%2FProject%2FSTM32src%2FTSYS_controller%2Fsensors_manage.h;0;4
current_page=2
FILE_NAME_0=7848;C;0;EKOI8-R;0;1;0;%2Fhome%2Feddy%2FDocs%2FSAO%2FBTA%2FMIRROR_CONTROL_termo%2FProject%2FSTM32src%2FTSYS_controller%2Fcan.c;0;4
FILE_NAME_1=1413;C;0;EKOI8-R;0;1;0;%2Fhome%2Feddy%2FDocs%2FSAO%2FBTA%2FMIRROR_CONTROL_termo%2FProject%2FSTM32src%2FTSYS_controller%2Fcan.h;0;4
FILE_NAME_2=3014;C;0;EUTF-8;0;1;0;%2Fhome%2Feddy%2FDocs%2FSAO%2FBTA%2FMIRROR_CONTROL_termo%2FProject%2FSTM32src%2FTSYS_controller%2Fmain.c;0;4
FILE_NAME_3=3352;C;0;EKOI8-R;0;1;0;%2Fhome%2Feddy%2FDocs%2FSAO%2FBTA%2FMIRROR_CONTROL_termo%2FProject%2FSTM32src%2FTSYS_controller%2Fsensors_manage.c;0;4
FILE_NAME_4=1408;C;0;EKOI8-R;0;1;0;%2Fhome%2Feddy%2FDocs%2FSAO%2FBTA%2FMIRROR_CONTROL_termo%2FProject%2FSTM32src%2FTSYS_controller%2Fsensors_manage.h;0;4
FILE_NAME_5=2492;C;0;EUTF-8;0;1;0;%2Fhome%2Feddy%2FDocs%2FSAO%2FBTA%2FMIRROR_CONTROL_termo%2FProject%2FSTM32src%2FTSYS_controller%2Fcan_process.c;0;4
FILE_NAME_6=1585;C;0;EUTF-8;0;1;0;%2Fhome%2Feddy%2FDocs%2FSAO%2FBTA%2FMIRROR_CONTROL_termo%2FProject%2FSTM32src%2FTSYS_controller%2Fcan_process.h;0;4
FILE_NAME_7=2511;C;0;EKOI8-R;0;1;0;%2Fhome%2Feddy%2FDocs%2FSAO%2FBTA%2FMIRROR_CONTROL_termo%2FProject%2FSTM32src%2FTSYS_controller%2Fhardware.h;0;4
FILE_NAME_8=2520;C;0;EUTF-8;0;1;0;%2Fhome%2Feddy%2FDocs%2FSAO%2FBTA%2FMIRROR_CONTROL_termo%2FProject%2FSTM32src%2FTSYS_controller%2Fusart.c;0;4
FILE_NAME_9=1049;C;0;EUTF-8;0;1;0;%2Fhome%2Feddy%2FDocs%2FSAO%2FBTA%2FMIRROR_CONTROL_termo%2FProject%2FSTM32src%2FTSYS_controller%2Fusart.h;0;4
FILE_NAME_10=196;Make;0;EUTF-8;1;1;0;%2Fhome%2Feddy%2FDocs%2FSAO%2FBTA%2FMIRROR_CONTROL_termo%2FProject%2FSTM32src%2FTSYS_controller%2FMakefile;0;4
[VTE]
last_dir=/home/eddy