light protocol change

This commit is contained in:
eddyem 2018-08-10 15:28:01 +03:00
parent 6c261ff7c6
commit 288e4a66f9
8 changed files with 272 additions and 184 deletions

View File

@ -4,7 +4,7 @@ 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'), small letter for only local processing: ### Serial interface commands (ends with '\n'), small letter for only local processing:
- **0...9** - wait measurements of T from Nth controller (0==current controller) - **1...7** - send message to Nth controller, not broadcast (after number should be CAN command)
- **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

View File

@ -113,7 +113,7 @@ void can_messages_proc(){
#pragma message("TODO: process received T over USB!") #pragma message("TODO: process received T over USB!")
break; break;
default: default:
SEND("Unknown data received"); SEND("UNKNOWN_DATA");
} }
newline(); newline();
} }
@ -125,7 +125,7 @@ static CAN_status try2send(uint8_t *buf, uint8_t len, uint16_t id){
while(Tms - Tstart < SEND_TIMEOUT_MS){ while(Tms - Tstart < SEND_TIMEOUT_MS){
if(CAN_OK == can_send(buf, len, id)) return CAN_OK; if(CAN_OK == can_send(buf, len, id)) return CAN_OK;
} }
SEND("Bus busy!\n"); SEND("CAN_BUSY\n");
return CAN_BUSY; return CAN_BUSY;
} }

View File

@ -25,6 +25,7 @@
#include "sensors_manage.h" #include "sensors_manage.h"
#include "can.h" #include "can.h"
#include "can_process.h" #include "can_process.h"
#include "proto.h"
#pragma message("USARTNUM=" STR(USARTNUM)) #pragma message("USARTNUM=" STR(USARTNUM))
#pragma message("I2CPINS=" STR(I2CPINS)) #pragma message("I2CPINS=" STR(I2CPINS))
@ -35,13 +36,14 @@
#endif #endif
volatile uint32_t Tms = 0; volatile uint32_t Tms = 0;
volatile uint8_t canerror = 0;
/* Called when systick fires */ /* Called when systick fires */
void sys_tick_handler(void){ void sys_tick_handler(void){
++Tms; ++Tms;
} }
void iwdg_setup(){ static void iwdg_setup(){
/* Enable the peripheral clock RTC */ /* Enable the peripheral clock RTC */
/* (1) Enable the LSI (40kHz) */ /* (1) Enable the LSI (40kHz) */
/* (2) Wait while it is not ready */ /* (2) Wait while it is not ready */
@ -62,18 +64,9 @@ void iwdg_setup(){
IWDG->KR = IWDG_REFRESH; /* (6) */ IWDG->KR = IWDG_REFRESH; /* (6) */
} }
void CANsend(uint16_t targetID, uint8_t cmd, char echo){
if(CAN_OK == can_send_cmd(targetID, cmd)){
usart_putchar(echo);
newline();
}
}
int main(void){ int main(void){
uint32_t lastT = 0, lastS = 0; uint32_t lastT = 0, lastS = 0;
int16_t L = 0, ID; uint8_t gotmeasurement = 0;
uint8_t gotmeasurement = 0, canerror = 0;
char *txt;
sysreset(); sysreset();
SysTick_Config(6000, 1); SysTick_Config(6000, 1);
gpio_setup(); gpio_setup();
@ -125,128 +118,7 @@ int main(void){
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); cmd_parser();
char _1st = txt[0];
if(L == 2 && txt[1] == '\n'){
L = 0;
if(_1st > '0' && _1st < '8'){
ID = (CAN_ID_PREFIX & CAN_ID_MASK) | (_1st - '0');
CANsend(ID, CMD_START_MEASUREMENT, _1st);
}else switch(_1st){
case 'B':
CANsend(BCAST_ID, CMD_DUMMY0, _1st);
break;
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':
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':
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':
sensors_on();
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':
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;
default: // help
SEND(
"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 (current)\n"
"D - send CAN dummy message to master\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"
"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"
);
break;
}
}
}
if(L){ // text waits for sending
while(LINE_BUSY == usart_send(txt, L));
L = 0;
} }
} }
return 0; return 0;

View File

@ -0,0 +1,169 @@
/*
* geany_encoding=koi8-r
* proto.c
*
* Copyright 2018 Edward V. Emelianov <eddy@sao.ru, edward.emelianoff@gmail.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
* MA 02110-1301, USA.
*
*/
#include "hardware.h"
#include "usart.h"
#include "can.h"
#include "can_process.h"
#include "sensors_manage.h"
extern volatile uint8_t canerror;
static void CANsend(uint16_t targetID, uint8_t cmd, char echo){
if(CAN_OK == can_send_cmd(targetID, cmd)){
usart_putchar(echo);
newline();
}
}
void cmd_parser(){
char *txt = NULL;
int16_t L = 0, ID = BCAST_ID;
L = usart_getline(&txt);
char _1st = txt[0];
if(_1st >= '0' && _1st < '8'){ // send command to Nth controller, not broadcast
if(L == 3){ // with '\n' at end!
if(_1st == '0'){
usart_putchar(txt[1]);
_1st = txt[1] + 'a' - 'A'; // change network command to local
newline();
}else{
ID = (CAN_ID_PREFIX & CAN_ID_MASK) | (_1st - '0');
_1st = txt[1];
}
}else{
_1st = '?'; // show help
}
}else if(L != 2) _1st = '?';
switch(_1st){
case 'B':
CANsend(ID, CMD_DUMMY0, _1st);
break;
case 'c':
showcoeffs();
break;
case 'D':
CANsend(MASTER_ID, CMD_DUMMY1, _1st);
break;
case 'E':
CANsend(ID, CMD_STOP_SCAN, _1st);
break;
case 'e':
sensors_scan_mode = 0;
break;
case 'F':
CANsend(ID, CMD_SENSORS_OFF, _1st);
break;
case 'f':
sensors_off();
break;
case 'g':
SEND("Can address: ");
printuhex(getCANID());
newline();
break;
case 'H':
CANsend(ID, CMD_HIGH_SPEED, _1st);
break;
case 'h':
i2c_setup(HIGH_SPEED);
break;
case 'i':
CAN_reinit();
SEND("Can address: ");
printuhex(getCANID());
newline();
break;
case 'L':
CANsend(ID, CMD_LOW_SPEED, _1st);
break;
case 'l':
i2c_setup(LOW_SPEED);
break;
case 'P':
CANsend(ID, CMD_PING, _1st);
break;
case 'R':
CANsend(ID, CMD_REINIT_I2C, _1st);
break;
case 'r':
i2c_setup(CURRENT_SPEED);
break;
case 'S':
CANsend(ID, CMD_START_SCAN, _1st);
break;
case 's':
sensors_scan_mode = 1;
break;
case 'T':
CANsend(ID, CMD_START_MEASUREMENT, _1st);
break;
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(ID, CMD_LOWEST_SPEED, _1st);
break;
case 'v':
i2c_setup(VERYLOW_SPEED);
break;
case 'Z':
CANsend(ID, CMD_SENSORS_STATE, _1st);
break;
case 'z':
SEND("SSTATE0=");
usart_putchar(sensors_get_state());
newline();
break;
default: // help
SEND(
"ALL little letters - without CAN messaging\n"
"0..7 - send command to given controller (0 - this) instead of broadcast\n"
"B - send broadcast CAN dummy message\n"
"c - show coefficients (current)\n"
"D - send CAN dummy message to master\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"
"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"
);
break;
}
}

View File

@ -0,0 +1,29 @@
/*
* geany_encoding=koi8-r
* proto.h
*
* Copyright 2018 Edward V. Emelianov <eddy@sao.ru, edward.emelianoff@gmail.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
* MA 02110-1301, USA.
*
*/
#pragma once
#ifndef __PROTO_H__
#define __PROTO_H__
void cmd_parser();
#endif // __PROTO_H__

View File

@ -133,19 +133,19 @@ static void count_sensors(){
// procedure call each time @ resetting // procedure call each time @ resetting
static uint8_t resetproc(){ static uint8_t resetproc(){
uint8_t i, ctr = 0; uint8_t i, ctr = 0;
SEND("pair "); printu(curr_mul_addr); //SEND("pair "); printu(curr_mul_addr);
SEND(" : "); //SEND(" : ");
for(i = 0; i < 2; ++i){ for(i = 0; i < 2; ++i){
if(write_i2c(Taddr[i], TSYS01_RESET)){ if(write_i2c(Taddr[i], TSYS01_RESET)){
usart_putchar('0' + i); //usart_putchar('0' + i);
++ctr; ++ctr;
sens_present[i] |= 1<<curr_mul_addr; // set bit - found sens_present[i] |= 1<<curr_mul_addr; // set bit - found
}else{ // not found }else{ // not found
sens_present[i] &= ~(1<<curr_mul_addr); // reset bit - not found sens_present[i] &= ~(1<<curr_mul_addr); // reset bit - not found
} }
} }
if(!ctr) SEND("not found"); //if(!ctr) SEND("not found");
newline(); //newline();
return 0; return 0;
} }
@ -314,11 +314,11 @@ void showcoeffs(){
void showtemperature(){ void showtemperature(){
int a, p; int a, p;
if(Nsens_present == 0){ if(Nsens_present == 0){
SEND("No sensors found\n"); //SEND("No sensors found\n");
return; return;
} }
if(Ntemp_measured == 0){ if(Ntemp_measured == 0){
SEND("No right measurements\n"); //SEND("No right measurements\n");
return; return;
} }
for(a = 0; a <= MUL_MAX_ADDRESS; ++a){ for(a = 0; a <= MUL_MAX_ADDRESS; ++a){

Binary file not shown.

View File

@ -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_3Ö0 ALL_OKÌ4Îanon_enum_1Ö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
@ -116,8 +116,8 @@ CAN_BTR_TS2
CAN_BTR_TS2_0Ì65536Ö0 CAN_BTR_TS2_0Ì65536Ö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_4Ö0
CAN_ERRORÌ4Îanon_enum_2Ö0 CAN_ERRORÌ4Îanon_enum_4Ö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
@ -1053,7 +1053,7 @@ CAN_FFA1R_FFA6
CAN_FFA1R_FFA7Ì65536Ö0 CAN_FFA1R_FFA7Ì65536Ö0
CAN_FFA1R_FFA8Ì65536Ö0 CAN_FFA1R_FFA8Ì65536Ö0
CAN_FFA1R_FFA9Ì65536Ö0 CAN_FFA1R_FFA9Ì65536Ö0
CAN_FIFO_OVERRUNÌ4Îanon_enum_2Ö0 CAN_FIFO_OVERRUNÌ4Îanon_enum_4Ö0
CAN_FM1R_FBMÌ65536Ö0 CAN_FM1R_FBMÌ65536Ö0
CAN_FM1R_FBM0Ì65536Ö0 CAN_FM1R_FBM0Ì65536Ö0
CAN_FM1R_FBM1Ì65536Ö0 CAN_FM1R_FBM1Ì65536Ö0
@ -1120,8 +1120,8 @@ 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_NOTMASTERÌ4Îanon_enum_4Ö0
CAN_OKÌ4Îanon_enum_2Ö0 CAN_OKÌ4Îanon_enum_4Ö0
CAN_RDH0R_DATA4Ì65536Ö0 CAN_RDH0R_DATA4Ì65536Ö0
CAN_RDH0R_DATA5Ì65536Ö0 CAN_RDH0R_DATA5Ì65536Ö0
CAN_RDH0R_DATA6Ì65536Ö0 CAN_RDH0R_DATA6Ì65536Ö0
@ -1144,7 +1144,7 @@ CAN_RDT0R_TIME
CAN_RDT1R_DLCÌ65536Ö0 CAN_RDT1R_DLCÌ65536Ö0
CAN_RDT1R_FMIÌ65536Ö0 CAN_RDT1R_FMIÌ65536Ö0
CAN_RDT1R_TIMEÌ65536Ö0 CAN_RDT1R_TIMEÌ65536Ö0
CAN_READYÌ4Îanon_enum_2Ö0 CAN_READYÌ4Îanon_enum_4Ö0
CAN_RF0R_FMP0Ì65536Ö0 CAN_RF0R_FMP0Ì65536Ö0
CAN_RF0R_FOVR0Ì65536Ö0 CAN_RF0R_FOVR0Ì65536Ö0
CAN_RF0R_FULL0Ì65536Ö0 CAN_RF0R_FULL0Ì65536Ö0
@ -1161,7 +1161,7 @@ CAN_RI1R_EXID
CAN_RI1R_IDEÌ65536Ö0 CAN_RI1R_IDEÌ65536Ö0
CAN_RI1R_RTRÌ65536Ö0 CAN_RI1R_RTRÌ65536Ö0
CAN_RI1R_STIDÌ65536Ö0 CAN_RI1R_STIDÌ65536Ö0
CAN_STOPÌ4Îanon_enum_2Ö0 CAN_STOPÌ4Îanon_enum_4Ö0
CAN_TDH0R_DATA4Ì65536Ö0 CAN_TDH0R_DATA4Ì65536Ö0
CAN_TDH0R_DATA5Ì65536Ö0 CAN_TDH0R_DATA5Ì65536Ö0
CAN_TDH0R_DATA6Ì65536Ö0 CAN_TDH0R_DATA6Ì65536Ö0
@ -1234,10 +1234,10 @@ CAN_TSR_TME2
CAN_TSR_TXOK0Ì65536Ö0 CAN_TSR_TXOK0Ì65536Ö0
CAN_TSR_TXOK1Ì65536Ö0 CAN_TSR_TXOK1Ì65536Ö0
CAN_TSR_TXOK2Ì65536Ö0 CAN_TSR_TXOK2Ì65536Ö0
CAN_commandsÌ4096Ö0Ïanon_enum_8 CAN_commandsÌ4096Ö0Ïanon_enum_9
CAN_get_statusÌ16Í()Ö0ÏCAN_status CAN_get_statusÌ16Í()Ö0ÏCAN_status
CAN_get_statusÌ1024Í()Ö0ÏCAN_status CAN_get_statusÌ1024Í()Ö0ÏCAN_status
CAN_messageÌ4096Ö0Ïanon_struct_1 CAN_messageÌ4096Ö0Ïanon_struct_3
CAN_messagebuf_popÌ16Í()Ö0ÏCAN_message * CAN_messagebuf_popÌ16Í()Ö0ÏCAN_message *
CAN_messagebuf_popÌ1024Í()Ö0ÏCAN_message * CAN_messagebuf_popÌ1024Í()Ö0ÏCAN_message *
CAN_messagebuf_pushÌ16Í(CAN_message *msg)Ö0Ïint CAN_messagebuf_pushÌ16Í(CAN_message *msg)Ö0Ïint
@ -1245,7 +1245,7 @@ CAN_reinit
CAN_reinitÌ1024Í()Ö0Ïvoid CAN_reinitÌ1024Í()Ö0Ïvoid
CAN_setupÌ16Í()Ö0Ïvoid CAN_setupÌ16Í()Ö0Ïvoid
CAN_setupÌ1024Í()Ö0Ïvoid CAN_setupÌ1024Í()Ö0Ïvoid
CAN_statusÌ4096Ö0Ïanon_enum_2 CAN_statusÌ4096Ö0Ïanon_enum_4
CANsendÌ16Í(uint16_t targetID, uint8_t cmd, char echo)Ö0Ïvoid CANsendÌ16Í(uint16_t targetID, uint8_t cmd, char echo)Ö0Ïvoid
CECÌ65536Ö0 CECÌ65536Ö0
CEC_BASEÌ65536Ö0 CEC_BASEÌ65536Ö0
@ -1291,54 +1291,66 @@ 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_4Ö0
CMD_DUMMY0Ì4Îanon_enum_5Ö0 CMD_DUMMY0Ì4Îanon_enum_5Ö0
CMD_DUMMY0Ì4Îanon_enum_6Ö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_4Ö0 CMD_DUMMY0Ì4Îanon_enum_9Ö0
CMD_DUMMY1Ì4Îanon_enum_5Ö0 CMD_DUMMY1Ì4Îanon_enum_5Ö0
CMD_DUMMY1Ì4Îanon_enum_6Ö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_HIGH_SPEEDÌ4Îanon_enum_4Ö0 CMD_DUMMY1Ì4Îanon_enum_9Ö0
CMD_HIGH_SPEEDÌ4Îanon_enum_5Ö0 CMD_HIGH_SPEEDÌ4Îanon_enum_5Ö0
CMD_HIGH_SPEEDÌ4Îanon_enum_6Ö0
CMD_HIGH_SPEEDÌ4Îanon_enum_7Ö0 CMD_HIGH_SPEEDÌ4Îanon_enum_7Ö0
CMD_HIGH_SPEEDÌ4Îanon_enum_8Ö0 CMD_HIGH_SPEEDÌ4Îanon_enum_8Ö0
CMD_LOWEST_SPEEDÌ4Îanon_enum_4Ö0 CMD_HIGH_SPEEDÌ4Îanon_enum_9Ö0
CMD_LOWEST_SPEEDÌ4Îanon_enum_5Ö0 CMD_LOWEST_SPEEDÌ4Îanon_enum_5Ö0
CMD_LOWEST_SPEEDÌ4Îanon_enum_6Ö0
CMD_LOWEST_SPEEDÌ4Îanon_enum_7Ö0 CMD_LOWEST_SPEEDÌ4Îanon_enum_7Ö0
CMD_LOWEST_SPEEDÌ4Îanon_enum_8Ö0 CMD_LOWEST_SPEEDÌ4Îanon_enum_8Ö0
CMD_LOW_SPEEDÌ4Îanon_enum_4Ö0 CMD_LOWEST_SPEEDÌ4Îanon_enum_9Ö0
CMD_LOW_SPEEDÌ4Îanon_enum_5Ö0 CMD_LOW_SPEEDÌ4Îanon_enum_5Ö0
CMD_LOW_SPEEDÌ4Îanon_enum_6Ö0
CMD_LOW_SPEEDÌ4Îanon_enum_7Ö0 CMD_LOW_SPEEDÌ4Îanon_enum_7Ö0
CMD_LOW_SPEEDÌ4Îanon_enum_8Ö0 CMD_LOW_SPEEDÌ4Îanon_enum_8Ö0
CMD_PINGÌ4Îanon_enum_4Ö0 CMD_LOW_SPEEDÌ4Îanon_enum_9Ö0
CMD_PINGÌ4Îanon_enum_5Ö0 CMD_PINGÌ4Îanon_enum_5Ö0
CMD_PINGÌ4Îanon_enum_6Ö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_REINIT_I2CÌ4Îanon_enum_4Ö0 CMD_PINGÌ4Îanon_enum_9Ö0
CMD_REINIT_I2CÌ4Îanon_enum_5Ö0 CMD_REINIT_I2CÌ4Îanon_enum_5Ö0
CMD_REINIT_I2CÌ4Îanon_enum_6Ö0
CMD_REINIT_I2CÌ4Îanon_enum_7Ö0 CMD_REINIT_I2CÌ4Îanon_enum_7Ö0
CMD_REINIT_I2CÌ4Îanon_enum_8Ö0 CMD_REINIT_I2CÌ4Îanon_enum_8Ö0
CMD_SENSORS_OFFÌ4Îanon_enum_4Ö0 CMD_REINIT_I2CÌ4Îanon_enum_9Ö0
CMD_SENSORS_OFFÌ4Îanon_enum_5Ö0 CMD_SENSORS_OFFÌ4Îanon_enum_5Ö0
CMD_SENSORS_OFFÌ4Îanon_enum_6Ö0
CMD_SENSORS_OFFÌ4Îanon_enum_7Ö0 CMD_SENSORS_OFFÌ4Îanon_enum_7Ö0
CMD_SENSORS_OFFÌ4Îanon_enum_8Ö0 CMD_SENSORS_OFFÌ4Îanon_enum_8Ö0
CMD_SENSORS_STATEÌ4Îanon_enum_4Ö0 CMD_SENSORS_OFFÌ4Îanon_enum_9Ö0
CMD_SENSORS_STATEÌ4Îanon_enum_5Ö0 CMD_SENSORS_STATEÌ4Îanon_enum_5Ö0
CMD_SENSORS_STATEÌ4Îanon_enum_6Ö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_4Ö0 CMD_SENSORS_STATEÌ4Îanon_enum_9Ö0
CMD_START_MEASUREMENTÌ4Îanon_enum_5Ö0 CMD_START_MEASUREMENTÌ4Îanon_enum_5Ö0
CMD_START_MEASUREMENTÌ4Îanon_enum_6Ö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_MEASUREMENTÌ4Îanon_enum_9Ö0
CMD_START_SCANÌ4Îanon_enum_5Ö0 CMD_START_SCANÌ4Îanon_enum_5Ö0
CMD_START_SCANÌ4Îanon_enum_6Ö0
CMD_START_SCANÌ4Îanon_enum_7Ö0 CMD_START_SCANÌ4Îanon_enum_7Ö0
CMD_START_SCANÌ4Îanon_enum_8Ö0 CMD_START_SCANÌ4Îanon_enum_8Ö0
CMD_STOP_SCANÌ4Îanon_enum_4Ö0 CMD_START_SCANÌ4Îanon_enum_9Ö0
CMD_STOP_SCANÌ4Îanon_enum_5Ö0 CMD_STOP_SCANÌ4Îanon_enum_5Ö0
CMD_STOP_SCANÌ4Îanon_enum_6Ö0
CMD_STOP_SCANÌ4Îanon_enum_7Ö0 CMD_STOP_SCANÌ4Îanon_enum_7Ö0
CMD_STOP_SCANÌ4Îanon_enum_8Ö0 CMD_STOP_SCANÌ4Îanon_enum_8Ö0
CMD_STOP_SCANÌ4Îanon_enum_9Ö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
@ -2277,7 +2289,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_3Ö0 LINE_BUSYÌ4Îanon_enum_1Ö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
@ -2918,16 +2930,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_6Ö0 SENS_GATHERINGÌ4Îanon_enum_2Ö0
SENS_GET_COEFFSÌ4Îanon_enum_6Ö0 SENS_GET_COEFFSÌ4Îanon_enum_2Ö0
SENS_INITINGÌ4Îanon_enum_6Ö0 SENS_INITINGÌ4Îanon_enum_2Ö0
SENS_OFFÌ4Îanon_enum_6Ö0 SENS_OFFÌ4Îanon_enum_2Ö0
SENS_OVERCURNTÌ4Îanon_enum_6Ö0 SENS_OVERCURNTÌ4Îanon_enum_2Ö0
SENS_OVERCURNT_OFFÌ4Îanon_enum_6Ö0 SENS_OVERCURNT_OFFÌ4Îanon_enum_2Ö0
SENS_RESETINGÌ4Îanon_enum_6Ö0 SENS_RESETINGÌ4Îanon_enum_2Ö0
SENS_SLEEPINGÌ4Îanon_enum_6Ö0 SENS_SLEEPINGÌ4Îanon_enum_2Ö0
SENS_START_MSRMNTÌ4Îanon_enum_6Ö0 SENS_START_MSRMNTÌ4Îanon_enum_2Ö0
SENS_WAITINGÌ4Îanon_enum_6Ö0 SENS_WAITINGÌ4Îanon_enum_2Ö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
@ -3013,7 +3025,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_3Ö0 STR_TOO_LONGÌ4Îanon_enum_1Ö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
@ -3145,7 +3157,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_6 SensorsStateÌ4096Ö0Ïanon_enum_2
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
@ -3588,7 +3600,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_3 TXstatusÌ4096Ö0Ïanon_enum_1
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
@ -4190,6 +4202,7 @@ __PIE__
__PMTÌ65536Ö0 __PMTÌ65536Ö0
__PMTÌ131072Í(args)Ö0 __PMTÌ131072Í(args)Ö0
__PRAGMA_REDEFINE_EXTNAMEÌ65536Ö0 __PRAGMA_REDEFINE_EXTNAMEÌ65536Ö0
__PROTO_H__Ì65536Ö0
__PTRDIFF_MAX__Ì65536Ö0 __PTRDIFF_MAX__Ì65536Ö0
__PTRDIFF_TYPE__Ì65536Ö0 __PTRDIFF_TYPE__Ì65536Ö0
__REDIRECTÌ131072Í(name,proto,alias)Ö0 __REDIRECTÌ131072Í(name,proto,alias)Ö0
@ -4457,14 +4470,15 @@ __wur
__x86_64Ì65536Ö0 __x86_64Ì65536Ö0
__x86_64__Ì65536Ö0 __x86_64__Ì65536Ö0
anon_enum_0Ì2Ö0 anon_enum_0Ì2Ö0
anon_enum_1Ì2Ö0
anon_enum_2Ì2Ö0 anon_enum_2Ì2Ö0
anon_enum_3Ì2Ö0
anon_enum_4Ì2Ö0 anon_enum_4Ì2Ö0
anon_enum_5Ì2Ö0 anon_enum_5Ì2Ö0
anon_enum_6Ì2Ö0 anon_enum_6Ì2Ö0
anon_enum_7Ì2Ö0 anon_enum_7Ì2Ö0
anon_enum_8Ì2Ö0 anon_enum_8Ì2Ö0
anon_struct_1Ì2048Ö0 anon_enum_9Ì2Ö0
anon_struct_3Ì2048Ö0
bufovrÌ16384Ö0Ïint bufovrÌ16384Ö0Ïint
bufovrÌ32768Ö0Ïint bufovrÌ32768Ö0Ïint
calc_tÌ16Í(uint32_t t, int i)Ö0Ïuint16_t calc_tÌ16Í(uint32_t t, int i)Ö0Ïuint16_t
@ -4481,14 +4495,18 @@ can_send_cmd
can_send_dataÌ16Í(uint8_t *data, uint8_t len)Ö0ÏCAN_status can_send_dataÌ16Í(uint8_t *data, uint8_t len)Ö0ÏCAN_status
can_send_dataÌ1024Í(uint8_t *data, uint8_t len)Ö0ÏCAN_status can_send_dataÌ1024Í(uint8_t *data, uint8_t len)Ö0ÏCAN_status
can_statusÌ16384Ö0ÏCAN_status can_statusÌ16384Ö0ÏCAN_status
canerrorÌ16384Ö0Ïvolatile uint8_t
canerrorÌ32768Ö0Ïvolatile uint8_t
cec_can_isrÌ16Í()Ö0Ïvoid cec_can_isrÌ16Í()Ö0Ïvoid
cmd_parserÌ16Í()Ö0Ïvoid
cmd_parserÌ1024Í()Ö0Ïvoid
cntrÌ16384Ö0Ïuint32_t cntrÌ16384Ö0Ïuint32_t
coefficientsÌ16384Ö0Ïuint16_t coefficientsÌ16384Ö0Ïuint16_t
count_sensorsÌ16Í()Ö0Ïvoid count_sensorsÌ16Í()Ö0Ïvoid
curI2CspeedÌ16384Ö0ÏI2C_SPEED curI2CspeedÌ16384Ö0ÏI2C_SPEED
curI2CspeedÌ32768Ö0ÏI2C_SPEED curI2CspeedÌ32768Ö0ÏI2C_SPEED
curr_mul_addrÌ16384Ö0Ïuint8_t curr_mul_addrÌ16384Ö0Ïuint8_t
dataÌ64Îanon_struct_1Ö0Ïuint8_t dataÌ64Îanon_struct_3Ö0Ïuint8_t
datalenÌ16384Ö0Ïint datalenÌ16384Ö0Ïint
dlenÌ16384Ö0Ïint dlenÌ16384Ö0Ïint
dma1_channel2_3_isrÌ16Í()Ö0Ïvoid dma1_channel2_3_isrÌ16Í()Ö0Ïvoid
@ -4504,7 +4522,7 @@ i2c_setup
i2c_setupÌ1024Í(I2C_SPEED speed)Ö0Ïvoid i2c_setupÌ1024Í(I2C_SPEED speed)Ö0Ïvoid
iwdg_setupÌ16Í()Ö0Ïvoid iwdg_setupÌ16Í()Ö0Ïvoid
lastSensTÌ16384Ö0Ïuint32_t lastSensTÌ16384Ö0Ïuint32_t
lengthÌ64Îanon_struct_1Ö0Ïuint8_t lengthÌ64Îanon_struct_3Ö0Ïuint8_t
linerdyÌ16384Ö0Ïvolatile int linerdyÌ16384Ö0Ïvolatile int
linerdyÌ32768Ö0Ïvolatile int linerdyÌ32768Ö0Ïvolatile int
linuxÌ65536Ö0 linuxÌ65536Ö0