mirror of
https://github.com/eddyem/tsys01.git
synced 2025-12-06 18:45:15 +03:00
add some CAN commands
This commit is contained in:
parent
9fc1fd7ad6
commit
6c261ff7c6
@ -3,24 +3,23 @@
|
|||||||
Make regular scan of 8 sensors' pairs.
|
Make regular scan of 8 sensors' pairs.
|
||||||
USART speed 115200. Code for ../../kicad/stm32
|
USART speed 115200. Code for ../../kicad/stm32
|
||||||
|
|
||||||
### Serial interface commands (ends with '\n'):
|
### Serial interface commands (ends with '\n'), small letter for only local processing:
|
||||||
- **0...9** - wait measurements of T from Nth controller (0==T for master)
|
- **0...9** - wait measurements of T from Nth controller (0==current controller)
|
||||||
- **A** send everybody to start T measurement
|
|
||||||
- **B** send dummy CAN messages to broadcast address
|
- **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
|
- **D** send dummy CAN messages to master (0) address
|
||||||
- **E** end temperature scan
|
- **Ee** end temperature scan
|
||||||
- **F** turn sensors off
|
- **Ff** turn sensors off
|
||||||
- **G** get CAN address
|
- **g** get last CAN address
|
||||||
- **H** switch I2C to high speed (100kHz)
|
- **Hh** switch I2C to high speed (100kHz)
|
||||||
- **I** reinit CAN
|
- **i** reinit CAN
|
||||||
- **L** switch I2C to low speed (default, 10kHz)
|
- **Ll** switch I2C to low speed (default, 10kHz)
|
||||||
- **O** turn sensors on
|
|
||||||
- **P** ping everyone over CAN
|
- **P** ping everyone over CAN
|
||||||
- **R** reinit I2C
|
- **Rr** reinit I2C
|
||||||
- **S** start temperature scan
|
- **Ss** start temperature scan
|
||||||
- **T** start single temperature measurement
|
- **Tt** start single temperature measurement
|
||||||
- **V** very low speed
|
- **u** check CAN bus status for errors
|
||||||
|
- **Vv** very low speed
|
||||||
- **Z** get sensors state over CAN
|
- **Z** get sensors state over CAN
|
||||||
|
|
||||||
### PINOUT
|
### PINOUT
|
||||||
|
|||||||
@ -160,15 +160,13 @@ void can_proc(){
|
|||||||
can_process_fifo(1);
|
can_process_fifo(1);
|
||||||
}
|
}
|
||||||
if(CAN->ESR & (CAN_ESR_BOFF | CAN_ESR_EPVF | CAN_ESR_EWGF)){ // much errors - restart CAN BUS
|
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");
|
MSG("bus-off, restarting\n");
|
||||||
#pragma message "TODO: let 2 know main() about problems in CANbus"
|
|
||||||
// request abort for all mailboxes
|
// request abort for all mailboxes
|
||||||
CAN->TSR |= CAN_TSR_ABRQ0 | CAN_TSR_ABRQ1 | CAN_TSR_ABRQ2;
|
CAN->TSR |= CAN_TSR_ABRQ0 | CAN_TSR_ABRQ1 | CAN_TSR_ABRQ2;
|
||||||
// reset CAN bus
|
// reset CAN bus
|
||||||
RCC->APB1RSTR |= RCC_APB1RSTR_CANRST;
|
RCC->APB1RSTR |= RCC_APB1RSTR_CANRST;
|
||||||
RCC->APB1RSTR &= ~RCC_APB1RSTR_CANRST;
|
RCC->APB1RSTR &= ~RCC_APB1RSTR_CANRST;
|
||||||
CAN_setup();
|
can_status = CAN_ERROR;
|
||||||
}
|
}
|
||||||
#ifdef EBUG
|
#ifdef EBUG
|
||||||
static uint32_t esr, msr, tsr;
|
static uint32_t esr, msr, tsr;
|
||||||
|
|||||||
@ -43,11 +43,13 @@ typedef struct{
|
|||||||
} CAN_message;
|
} CAN_message;
|
||||||
|
|
||||||
typedef enum{
|
typedef enum{
|
||||||
CAN_STOP,
|
CAN_NOTMASTER, // can't send command - not a mastar
|
||||||
CAN_READY,
|
CAN_STOP, // CAN stopped
|
||||||
CAN_BUSY,
|
CAN_READY, // ready to send
|
||||||
CAN_OK,
|
CAN_BUSY, // bus is busy
|
||||||
CAN_FIFO_OVERRUN
|
CAN_OK, // all OK?
|
||||||
|
CAN_FIFO_OVERRUN, // FIFO overrun
|
||||||
|
CAN_ERROR // no recipients on bus or too many errors
|
||||||
} CAN_status;
|
} CAN_status;
|
||||||
|
|
||||||
CAN_status CAN_get_status();
|
CAN_status CAN_get_status();
|
||||||
|
|||||||
@ -62,6 +62,27 @@ void can_messages_proc(){
|
|||||||
case CMD_START_MEASUREMENT:
|
case CMD_START_MEASUREMENT:
|
||||||
sensors_start();
|
sensors_start();
|
||||||
break;
|
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
|
}else if(data[0] == DATA_MARK){ // process received data
|
||||||
if(len < 3) return;
|
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
|
* @param cmd - command to send
|
||||||
*/
|
*/
|
||||||
CAN_status can_send_cmd(uint16_t targetID, uint8_t cmd){
|
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];
|
uint8_t buf[2];
|
||||||
buf[0] = COMMAND_MARK;
|
buf[0] = COMMAND_MARK;
|
||||||
buf[1] = cmd;
|
buf[1] = cmd;
|
||||||
@ -163,10 +184,14 @@ int8_t send_temperatures(int8_t N){
|
|||||||
can_data[1] = a*10 + p;
|
can_data[1] = a*10 + p;
|
||||||
//char b[] = {'T', a+'0', p+'0', '=', '+'};
|
//char b[] = {'T', a+'0', p+'0', '=', '+'};
|
||||||
int16_t t = Temperatures[a][p];
|
int16_t t = Temperatures[a][p];
|
||||||
|
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[2] = t>>8; // H byte
|
||||||
can_data[3] = t&0xff; // L byte
|
can_data[3] = t&0xff; // L byte
|
||||||
if(CAN_OK == can_send_data(can_data, 4)){ // OK, calculate next address
|
if(CAN_OK == can_send_data(can_data, 4)){ // OK, calculate next address
|
||||||
++retn;
|
++retn;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
return retn;
|
return retn;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -34,6 +34,13 @@ typedef enum{
|
|||||||
CMD_PING, // request for PONG cmd
|
CMD_PING, // request for PONG cmd
|
||||||
CMD_START_MEASUREMENT, // start thermal measurement
|
CMD_START_MEASUREMENT, // start thermal measurement
|
||||||
CMD_SENSORS_STATE, // reply data with sensors state
|
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
|
// dummy commands for test purposes
|
||||||
CMD_DUMMY0 = 0xDA,
|
CMD_DUMMY0 = 0xDA,
|
||||||
CMD_DUMMY1 = 0xAD
|
CMD_DUMMY1 = 0xAD
|
||||||
|
|||||||
@ -72,7 +72,7 @@ void CANsend(uint16_t targetID, uint8_t cmd, char echo){
|
|||||||
int main(void){
|
int main(void){
|
||||||
uint32_t lastT = 0, lastS = 0;
|
uint32_t lastT = 0, lastS = 0;
|
||||||
int16_t L = 0, ID;
|
int16_t L = 0, ID;
|
||||||
uint8_t gotmeasurement = 0;
|
uint8_t gotmeasurement = 0, canerror = 0;
|
||||||
char *txt;
|
char *txt;
|
||||||
sysreset();
|
sysreset();
|
||||||
SysTick_Config(6000, 1);
|
SysTick_Config(6000, 1);
|
||||||
@ -107,24 +107,23 @@ int main(void){
|
|||||||
lastS = Tms;
|
lastS = Tms;
|
||||||
}
|
}
|
||||||
can_proc();
|
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");
|
SEND("CAN bus fifo overrun occured!\n");
|
||||||
|
}else if(stat == CAN_ERROR){
|
||||||
|
LED_off(LED1);
|
||||||
|
CAN_setup();
|
||||||
|
canerror = 1;
|
||||||
}
|
}
|
||||||
can_messages_proc();
|
can_messages_proc();
|
||||||
//if(sensors_scan_mode){
|
|
||||||
if(SENS_SLEEPING == sensors_get_state()){ // show temperature @ each sleeping occurence
|
if(SENS_SLEEPING == sensors_get_state()){ // show temperature @ each sleeping occurence
|
||||||
if(!gotmeasurement){
|
if(!gotmeasurement){
|
||||||
//SEND("\nTIME=");
|
|
||||||
//printu(Tms);
|
|
||||||
//usart_putchar('\t');
|
|
||||||
//newline();
|
|
||||||
gotmeasurement = 1;
|
gotmeasurement = 1;
|
||||||
showtemperature();
|
showtemperature();
|
||||||
}
|
}
|
||||||
}else{
|
}else{
|
||||||
gotmeasurement = 0;
|
gotmeasurement = 0;
|
||||||
}
|
}
|
||||||
//}
|
|
||||||
if(usartrx()){ // usart1 received data, store in in buffer
|
if(usartrx()){ // usart1 received data, store in in buffer
|
||||||
L = usart_getline(&txt);
|
L = usart_getline(&txt);
|
||||||
char _1st = txt[0];
|
char _1st = txt[0];
|
||||||
@ -134,109 +133,112 @@ int main(void){
|
|||||||
ID = (CAN_ID_PREFIX & CAN_ID_MASK) | (_1st - '0');
|
ID = (CAN_ID_PREFIX & CAN_ID_MASK) | (_1st - '0');
|
||||||
CANsend(ID, CMD_START_MEASUREMENT, _1st);
|
CANsend(ID, CMD_START_MEASUREMENT, _1st);
|
||||||
}else switch(_1st){
|
}else switch(_1st){
|
||||||
case 'A':
|
|
||||||
CANsend(BCAST_ID, CMD_START_MEASUREMENT, _1st);
|
|
||||||
if(!sensors_scan_mode) sensors_start();
|
|
||||||
break;
|
|
||||||
case 'B':
|
case 'B':
|
||||||
CANsend(BCAST_ID, CMD_DUMMY0, _1st);
|
CANsend(BCAST_ID, CMD_DUMMY0, _1st);
|
||||||
break;
|
break;
|
||||||
case 'C': // 'C' - show coefficients
|
case 'c':
|
||||||
showcoeffs();
|
showcoeffs();
|
||||||
break;
|
break;
|
||||||
case 'D':
|
case 'D':
|
||||||
CANsend(MASTER_ID, CMD_DUMMY1, _1st);
|
CANsend(MASTER_ID, CMD_DUMMY1, _1st);
|
||||||
break;
|
break;
|
||||||
case 'E':
|
case 'E':
|
||||||
|
CANsend(BCAST_ID, CMD_STOP_SCAN, _1st);
|
||||||
|
case 'e':
|
||||||
SEND("End scan mode\n");
|
SEND("End scan mode\n");
|
||||||
sensors_scan_mode = 0;
|
sensors_scan_mode = 0;
|
||||||
break;
|
break;
|
||||||
case 'F':
|
case 'F':
|
||||||
|
CANsend(BCAST_ID, CMD_SENSORS_OFF, _1st);
|
||||||
|
case 'f':
|
||||||
|
SEND("Turn off sensors\n");
|
||||||
sensors_off();
|
sensors_off();
|
||||||
break;
|
break;
|
||||||
case 'G':
|
case 'g':
|
||||||
SEND("Can address: ");
|
SEND("Can address: ");
|
||||||
printuhex(getCANID());
|
printuhex(getCANID());
|
||||||
newline();
|
newline();
|
||||||
break;
|
break;
|
||||||
case 'H':
|
case 'H':
|
||||||
|
CANsend(BCAST_ID, CMD_HIGH_SPEED, _1st);
|
||||||
|
case 'h':
|
||||||
i2c_setup(HIGH_SPEED);
|
i2c_setup(HIGH_SPEED);
|
||||||
SEND("High speed\n");
|
SEND("High speed\n");
|
||||||
break;
|
break;
|
||||||
case 'I':
|
case 'i':
|
||||||
CAN_reinit();
|
CAN_reinit();
|
||||||
SEND("Can address: ");
|
SEND("Can address: ");
|
||||||
printuhex(getCANID());
|
printuhex(getCANID());
|
||||||
newline();
|
newline();
|
||||||
break;
|
break;
|
||||||
case 'L':
|
case 'L':
|
||||||
|
CANsend(BCAST_ID, CMD_LOW_SPEED, _1st);
|
||||||
|
case 'l':
|
||||||
i2c_setup(LOW_SPEED);
|
i2c_setup(LOW_SPEED);
|
||||||
SEND("Low speed\n");
|
SEND("Low speed\n");
|
||||||
break;
|
break;
|
||||||
case 'O':
|
/*case 'o':
|
||||||
sensors_on();
|
sensors_on();
|
||||||
break;
|
break;*/
|
||||||
case 'P':
|
case 'P':
|
||||||
CANsend(BCAST_ID, CMD_PING, _1st);
|
CANsend(BCAST_ID, CMD_PING, _1st);
|
||||||
break;
|
break;
|
||||||
case 'R':
|
case 'R':
|
||||||
|
CANsend(BCAST_ID, CMD_REINIT_I2C, _1st);
|
||||||
|
case 'r':
|
||||||
i2c_setup(CURRENT_SPEED);
|
i2c_setup(CURRENT_SPEED);
|
||||||
SEND("Reinit I2C\n");
|
SEND("Reinit I2C\n");
|
||||||
break;
|
break;
|
||||||
case 'S':
|
case 'S':
|
||||||
|
CANsend(BCAST_ID, CMD_START_SCAN, _1st);
|
||||||
|
case 's':
|
||||||
SEND("Start scan mode\n");
|
SEND("Start scan mode\n");
|
||||||
sensors_scan_mode = 1;
|
sensors_scan_mode = 1;
|
||||||
break;
|
break;
|
||||||
|
case 'T':
|
||||||
|
CANsend(BCAST_ID, CMD_START_MEASUREMENT, _1st);
|
||||||
case '0':
|
case '0':
|
||||||
case 'T': // 'T' - get temperature
|
case 't':
|
||||||
if(!sensors_scan_mode) sensors_start();
|
if(!sensors_scan_mode) sensors_start();
|
||||||
break;
|
break;
|
||||||
|
case 'u':
|
||||||
|
SEND("CANERROR=");
|
||||||
|
if(canerror){
|
||||||
|
canerror = 0;
|
||||||
|
usart_putchar('1');
|
||||||
|
}else usart_putchar('0');
|
||||||
|
newline();
|
||||||
|
break;
|
||||||
case 'V':
|
case 'V':
|
||||||
|
CANsend(BCAST_ID, CMD_LOWEST_SPEED, _1st);
|
||||||
|
case 'v':
|
||||||
i2c_setup(VERYLOW_SPEED);
|
i2c_setup(VERYLOW_SPEED);
|
||||||
SEND("Very low speed\n");
|
SEND("Very low speed\n");
|
||||||
break;
|
break;
|
||||||
case 'Z':
|
case 'Z':
|
||||||
CANsend(BCAST_ID, CMD_SENSORS_STATE, _1st);
|
CANsend(BCAST_ID, CMD_SENSORS_STATE, _1st);
|
||||||
break;
|
break;
|
||||||
#if 0
|
|
||||||
case 'd':
|
|
||||||
case 'g':
|
|
||||||
case 't':
|
|
||||||
case 's':
|
|
||||||
senstest(_1st);
|
|
||||||
break;
|
|
||||||
case 'p':
|
|
||||||
sensors_process();
|
|
||||||
break;
|
|
||||||
#endif
|
|
||||||
default: // help
|
default: // help
|
||||||
SEND(
|
SEND(
|
||||||
"0..7 - start measurement on given controller\n"
|
"ALL little letters - without CAN messaging\n"
|
||||||
"A - start measurement on all controllers\n"
|
"0..7 - start measurement on given controller (0 - this)\n"
|
||||||
"B - send broadcast CAN dummy message\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"
|
"D - send CAN dummy message to master\n"
|
||||||
"E - end themperature scan\n"
|
"Ee- end themperature scan\n"
|
||||||
"F - turn oFf sensors\n"
|
"Ff- turn oFf sensors\n"
|
||||||
"G - get CAN address\n"
|
"g - get last CAN address\n"
|
||||||
"H - high speed\n"
|
"Hh- high I2C speed\n"
|
||||||
"I - reinit CAN\n"
|
"i - reinit CAN (with new address)\n"
|
||||||
"L - low speed\n"
|
"Ll- low I2C speed\n"
|
||||||
"O - turn On sensors\n"
|
// "o - turn On sensors\n"
|
||||||
"P - ping everyone over CAN\n"
|
"P - ping everyone over CAN\n"
|
||||||
"R - reinit I2C\n"
|
"Rr- reinit I2C\n"
|
||||||
"S - Start themperature scan\n"
|
"Ss- Start themperature scan\n"
|
||||||
"T - start temperature measurement\n"
|
"Tt- start temperature measurement\n"
|
||||||
"V - very low speed\n"
|
"u - check CAN status for errors\n"
|
||||||
|
"Vv- very low I2C speed\n"
|
||||||
"Z - get sensors state over CAN\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;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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
|
// count 1 bits in sens_present & set `Nsens_present` to this value
|
||||||
static void count_sensors(){
|
static void count_sensors(){
|
||||||
Nsens_present = 0;
|
Nsens_present = 0;
|
||||||
@ -135,10 +125,6 @@ static void count_sensors(){
|
|||||||
++Nsens_present;
|
++Nsens_present;
|
||||||
B &= (B - 1);
|
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
|
case SENS_GATHERING: // scan all sensors, get thermal data & calculate temperature
|
||||||
if(sensors_scan(gettempproc)){
|
if(sensors_scan(gettempproc)){
|
||||||
lastSensT = Tms;
|
lastSensT = Tms;
|
||||||
if(Nsens_present != Ntemp_measured){
|
|
||||||
i2c_setup(CURRENT_SPEED);
|
|
||||||
sensors_on();
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
NsentOverCAN = 0;
|
NsentOverCAN = 0;
|
||||||
Sstate = SENS_SLEEPING;
|
Sstate = SENS_SLEEPING;
|
||||||
}
|
|
||||||
//MSG("->sleep\n");
|
//MSG("->sleep\n");
|
||||||
/*
|
/*
|
||||||
if(Nsens_present == Ntemp_measured){ // All OK, amount of T == amount of sensors
|
if(Nsens_present == Ntemp_measured){ // All OK, amount of T == amount of sensors
|
||||||
@ -437,12 +417,18 @@ MSG("gather error ->start\n");
|
|||||||
break;
|
break;
|
||||||
case SENS_SLEEPING: // wait for `SLEEP_TIME` till next measurements
|
case SENS_SLEEPING: // wait for `SLEEP_TIME` till next measurements
|
||||||
NsentOverCAN = send_temperatures(NsentOverCAN); // call sending T process
|
NsentOverCAN = send_temperatures(NsentOverCAN); // call sending T process
|
||||||
|
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(sensors_scan_mode){ // sleep until next measurement start
|
||||||
if(Tms - lastSensT > SLEEP_TIME){
|
if(Tms - lastSensT > SLEEP_TIME){
|
||||||
//MSG("sleep->start\n");
|
//MSG("sleep->start\n");
|
||||||
Sstate = SENS_START_MSRMNT;
|
Sstate = SENS_START_MSRMNT;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case SENS_OVERCURNT: // try to reinit all after overcurrent
|
case SENS_OVERCURNT: // try to reinit all after overcurrent
|
||||||
//MSG("try to turn on after overcurrent\n");
|
//MSG("try to turn on after overcurrent\n");
|
||||||
@ -452,37 +438,3 @@ MSG("gather error ->start\n");
|
|||||||
break;
|
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
|
|
||||||
|
|||||||
@ -28,8 +28,8 @@
|
|||||||
|
|
||||||
// time for power up procedure (500ms)
|
// time for power up procedure (500ms)
|
||||||
#define POWERUP_TIME (500)
|
#define POWERUP_TIME (500)
|
||||||
// time between two readings (3sec)
|
// time between readings in scan mode (15sec)
|
||||||
#define SLEEP_TIME (3000)
|
#define SLEEP_TIME (15000)
|
||||||
// error in measurement == -300degrC
|
// error in measurement == -300degrC
|
||||||
#define BAD_TEMPERATURE (-30000)
|
#define BAD_TEMPERATURE (-30000)
|
||||||
// no sensor on given channel
|
// no sensor on given channel
|
||||||
|
|||||||
Binary file not shown.
@ -94,7 +94,7 @@ ADC_TR_HT
|
|||||||
ADC_TR_LTÌ65536Ö0
|
ADC_TR_LTÌ65536Ö0
|
||||||
AHB2PERIPH_BASEÌ65536Ö0
|
AHB2PERIPH_BASEÌ65536Ö0
|
||||||
AHBPERIPH_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
|
APBPERIPH_BASEÌ65536Ö0
|
||||||
BAD_TEMPERATUREÌ65536Ö0
|
BAD_TEMPERATUREÌ65536Ö0
|
||||||
BCAST_IDÌ65536Ö0
|
BCAST_IDÌ65536Ö0
|
||||||
@ -117,6 +117,7 @@ CAN_BTR_TS2_0
|
|||||||
CAN_BTR_TS2_1Ì65536Ö0
|
CAN_BTR_TS2_1Ì65536Ö0
|
||||||
CAN_BTR_TS2_2Ì65536Ö0
|
CAN_BTR_TS2_2Ì65536Ö0
|
||||||
CAN_BUSYÌ4Îanon_enum_2Ö0
|
CAN_BUSYÌ4Îanon_enum_2Ö0
|
||||||
|
CAN_ERRORÌ4Îanon_enum_2Ö0
|
||||||
CAN_ESR_BOFFÌ65536Ö0
|
CAN_ESR_BOFFÌ65536Ö0
|
||||||
CAN_ESR_EPVFÌ65536Ö0
|
CAN_ESR_EPVFÌ65536Ö0
|
||||||
CAN_ESR_EWGFÌ65536Ö0
|
CAN_ESR_EWGFÌ65536Ö0
|
||||||
@ -1119,6 +1120,7 @@ CAN_MSR_SLAK
|
|||||||
CAN_MSR_SLAKIÌ65536Ö0
|
CAN_MSR_SLAKIÌ65536Ö0
|
||||||
CAN_MSR_TXMÌ65536Ö0
|
CAN_MSR_TXMÌ65536Ö0
|
||||||
CAN_MSR_WKUIÌ65536Ö0
|
CAN_MSR_WKUIÌ65536Ö0
|
||||||
|
CAN_NOTMASTERÌ4Îanon_enum_2Ö0
|
||||||
CAN_OKÌ4Îanon_enum_2Ö0
|
CAN_OKÌ4Îanon_enum_2Ö0
|
||||||
CAN_RDH0R_DATA4Ì65536Ö0
|
CAN_RDH0R_DATA4Ì65536Ö0
|
||||||
CAN_RDH0R_DATA5Ì65536Ö0
|
CAN_RDH0R_DATA5Ì65536Ö0
|
||||||
@ -1289,26 +1291,54 @@ CEC_TXDR_RXD
|
|||||||
CEC_TXDR_TXDÌ65536Ö0
|
CEC_TXDR_TXDÌ65536Ö0
|
||||||
CLEAR_BITÌ131072Í(REG,BIT)Ö0
|
CLEAR_BITÌ131072Í(REG,BIT)Ö0
|
||||||
CLEAR_REGÌ131072Í(REG)Ö0
|
CLEAR_REGÌ131072Í(REG)Ö0
|
||||||
CMD_DUMMY0Ì4Îanon_enum_3Ö0
|
CMD_DUMMY0Ì4Îanon_enum_4Ö0
|
||||||
CMD_DUMMY0Ì4Îanon_enum_6Ö0
|
CMD_DUMMY0Ì4Îanon_enum_5Ö0
|
||||||
CMD_DUMMY0Ì4Îanon_enum_7Ö0
|
CMD_DUMMY0Ì4Îanon_enum_7Ö0
|
||||||
CMD_DUMMY0Ì4Îanon_enum_8Ö0
|
CMD_DUMMY0Ì4Îanon_enum_8Ö0
|
||||||
CMD_DUMMY1Ì4Îanon_enum_3Ö0
|
CMD_DUMMY1Ì4Îanon_enum_4Ö0
|
||||||
CMD_DUMMY1Ì4Îanon_enum_6Ö0
|
CMD_DUMMY1Ì4Îanon_enum_5Ö0
|
||||||
CMD_DUMMY1Ì4Îanon_enum_7Ö0
|
CMD_DUMMY1Ì4Îanon_enum_7Ö0
|
||||||
CMD_DUMMY1Ì4Îanon_enum_8Ö0
|
CMD_DUMMY1Ì4Îanon_enum_8Ö0
|
||||||
CMD_PINGÌ4Îanon_enum_3Ö0
|
CMD_HIGH_SPEEDÌ4Îanon_enum_4Ö0
|
||||||
CMD_PINGÌ4Îanon_enum_6Ö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_7Ö0
|
||||||
CMD_PINGÌ4Îanon_enum_8Ö0
|
CMD_PINGÌ4Îanon_enum_8Ö0
|
||||||
CMD_SENSORS_STATEÌ4Îanon_enum_3Ö0
|
CMD_REINIT_I2CÌ4Îanon_enum_4Ö0
|
||||||
CMD_SENSORS_STATEÌ4Îanon_enum_6Ö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_7Ö0
|
||||||
CMD_SENSORS_STATEÌ4Îanon_enum_8Ö0
|
CMD_SENSORS_STATEÌ4Îanon_enum_8Ö0
|
||||||
CMD_START_MEASUREMENTÌ4Îanon_enum_3Ö0
|
CMD_START_MEASUREMENTÌ4Îanon_enum_4Ö0
|
||||||
CMD_START_MEASUREMENTÌ4Îanon_enum_6Ö0
|
CMD_START_MEASUREMENTÌ4Îanon_enum_5Ö0
|
||||||
CMD_START_MEASUREMENTÌ4Îanon_enum_7Ö0
|
CMD_START_MEASUREMENTÌ4Îanon_enum_7Ö0
|
||||||
CMD_START_MEASUREMENTÌ4Îanon_enum_8Ö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
|
COMMAND_MARKÌ65536Ö0
|
||||||
CONCATÌ131072Í(a,b)Ö0
|
CONCATÌ131072Í(a,b)Ö0
|
||||||
CONV_TIMEÌ65536Ö0
|
CONV_TIMEÌ65536Ö0
|
||||||
@ -2247,7 +2277,7 @@ LED1_port
|
|||||||
LED_blinkÌ131072Í(x)Ö0
|
LED_blinkÌ131072Í(x)Ö0
|
||||||
LED_offÌ131072Í(x)Ö0
|
LED_offÌ131072Í(x)Ö0
|
||||||
LED_onÌ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
|
LOW_SPEEDÌ4Îanon_enum_0Ö0
|
||||||
MASTER_IDÌ65536Ö0
|
MASTER_IDÌ65536Ö0
|
||||||
MODIFY_REGÌ131072Í(REG,CLEARMASK,SETMASK)Ö0
|
MODIFY_REGÌ131072Í(REG,CLEARMASK,SETMASK)Ö0
|
||||||
@ -2888,16 +2918,16 @@ SEND_TIMEOUT_MS
|
|||||||
SENSORS_OFFÌ131072Í()Ö0
|
SENSORS_OFFÌ131072Í()Ö0
|
||||||
SENSORS_ONÌ131072Í()Ö0
|
SENSORS_ONÌ131072Í()Ö0
|
||||||
SENSORS_OVERCURNTÌ131072Í()Ö0
|
SENSORS_OVERCURNTÌ131072Í()Ö0
|
||||||
SENS_GATHERINGÌ4Îanon_enum_4Ö0
|
SENS_GATHERINGÌ4Îanon_enum_6Ö0
|
||||||
SENS_GET_COEFFSÌ4Îanon_enum_4Ö0
|
SENS_GET_COEFFSÌ4Îanon_enum_6Ö0
|
||||||
SENS_INITINGÌ4Îanon_enum_4Ö0
|
SENS_INITINGÌ4Îanon_enum_6Ö0
|
||||||
SENS_OFFÌ4Îanon_enum_4Ö0
|
SENS_OFFÌ4Îanon_enum_6Ö0
|
||||||
SENS_OVERCURNTÌ4Îanon_enum_4Ö0
|
SENS_OVERCURNTÌ4Îanon_enum_6Ö0
|
||||||
SENS_OVERCURNT_OFFÌ4Îanon_enum_4Ö0
|
SENS_OVERCURNT_OFFÌ4Îanon_enum_6Ö0
|
||||||
SENS_RESETINGÌ4Îanon_enum_4Ö0
|
SENS_RESETINGÌ4Îanon_enum_6Ö0
|
||||||
SENS_SLEEPINGÌ4Îanon_enum_4Ö0
|
SENS_SLEEPINGÌ4Îanon_enum_6Ö0
|
||||||
SENS_START_MSRMNTÌ4Îanon_enum_4Ö0
|
SENS_START_MSRMNTÌ4Îanon_enum_6Ö0
|
||||||
SENS_WAITINGÌ4Îanon_enum_4Ö0
|
SENS_WAITINGÌ4Îanon_enum_6Ö0
|
||||||
SET_BITÌ131072Í(REG,BIT)Ö0
|
SET_BITÌ131072Í(REG,BIT)Ö0
|
||||||
SIG_ATOMIC_MAXÌ65536Ö0
|
SIG_ATOMIC_MAXÌ65536Ö0
|
||||||
SIG_ATOMIC_MINÌ65536Ö0
|
SIG_ATOMIC_MINÌ65536Ö0
|
||||||
@ -2983,7 +3013,7 @@ STM32F0
|
|||||||
STM32F042x6Ì65536Ö0
|
STM32F042x6Ì65536Ö0
|
||||||
STRÌ131072Í(s)Ö0
|
STRÌ131072Í(s)Ö0
|
||||||
STR_HELPERÌ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Ì65536Ö0
|
||||||
SYSCFG_BASEÌ65536Ö0
|
SYSCFG_BASEÌ65536Ö0
|
||||||
SYSCFG_CFGR1_ADC_DMA_RMPÌ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_PCÌ65536Ö0
|
||||||
SYSCFG_EXTICR4_EXTI15_PDÌ65536Ö0
|
SYSCFG_EXTICR4_EXTI15_PDÌ65536Ö0
|
||||||
SYSCFG_EXTICR4_EXTI15_PEÌ65536Ö0
|
SYSCFG_EXTICR4_EXTI15_PEÌ65536Ö0
|
||||||
SensorsStateÌ4096Ö0Ïanon_enum_4
|
SensorsStateÌ4096Ö0Ïanon_enum_6
|
||||||
SstateÌ16384Ö0ÏSensorsState
|
SstateÌ16384Ö0ÏSensorsState
|
||||||
StartHSEÌ16Í()Ö0Ïinline void
|
StartHSEÌ16Í()Ö0Ïinline void
|
||||||
StartHSI48Ì16Í()Ö0Ïinline void
|
StartHSI48Ì16Í()Ö0Ïinline void
|
||||||
@ -3558,7 +3588,7 @@ TSYS01_ADDR1
|
|||||||
TSYS01_PROM_ADDR0Ì65536Ö0
|
TSYS01_PROM_ADDR0Ì65536Ö0
|
||||||
TSYS01_RESETÌ65536Ö0
|
TSYS01_RESETÌ65536Ö0
|
||||||
TSYS01_START_CONVÌ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
|
TaddrÌ16384Ö0Ïconst uint8_t
|
||||||
TemperaturesÌ16384Ö0Ïint16_t
|
TemperaturesÌ16384Ö0Ïint16_t
|
||||||
TemperaturesÌ32768Ö0Ïint16_t
|
TemperaturesÌ32768Ö0Ïint16_t
|
||||||
|
|||||||
@ -27,16 +27,18 @@ long_line_behaviour=1
|
|||||||
long_line_column=100
|
long_line_column=100
|
||||||
|
|
||||||
[files]
|
[files]
|
||||||
current_page=8
|
current_page=2
|
||||||
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_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=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_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=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_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=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_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=8248;C;0;EKOI8-R;0;1;0;%2Fhome%2Feddy%2FDocs%2FSAO%2FELECTRONICS%2FSTM32%2FF0-srcs%2Fcanbus%2Fsrc%2Fcan.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=3404;C;0;EUTF-8;0;1;0;%2Fhome%2Feddy%2FDocs%2FSAO%2FELECTRONICS%2FSTM32%2FF0-srcs%2Fcanbus%2Fsrc%2Fmain.c;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=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_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=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_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=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
|
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]
|
[VTE]
|
||||||
last_dir=/home/eddy
|
last_dir=/home/eddy
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user