selftest bug behoben
This commit is contained in:
parent
4f62b06209
commit
7791bfd5c9
BIN
driver/cli
BIN
driver/cli
Binary file not shown.
|
@ -57,15 +57,13 @@ void B15F::init()
|
||||||
void B15F::reconnect()
|
void B15F::reconnect()
|
||||||
{
|
{
|
||||||
uint8_t tries = RECONNECT_TRIES;
|
uint8_t tries = RECONNECT_TRIES;
|
||||||
while(tries-- && false)
|
while(tries--)
|
||||||
{
|
{
|
||||||
delay_ms(RECONNECT_TIMEOUT);
|
delay_ms(RECONNECT_TIMEOUT);
|
||||||
|
discard();
|
||||||
discard();
|
|
||||||
|
|
||||||
if(testConnection())
|
if(testConnection())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
abort("Verbindung kann nicht repariert werden");
|
abort("Verbindung kann nicht repariert werden");
|
||||||
|
@ -73,13 +71,20 @@ void B15F::reconnect()
|
||||||
|
|
||||||
void B15F::discard(void)
|
void B15F::discard(void)
|
||||||
{
|
{
|
||||||
usart.clearOutputBuffer();
|
try
|
||||||
for(uint8_t i = 0; i < 16; i++)
|
|
||||||
{
|
{
|
||||||
usart.writeByte(RQ_DISC); // sende discard Befehl (verwerfe input)
|
usart.clearOutputBuffer();
|
||||||
delay_ms(4);
|
for(uint8_t i = 0; i < 16; i++)
|
||||||
|
{
|
||||||
|
usart.writeByte(RQ_DISC); // sende discard Befehl (verwerfe input)
|
||||||
|
delay_ms(4);
|
||||||
|
}
|
||||||
|
usart.clearInputBuffer();
|
||||||
|
}
|
||||||
|
catch(std::exception& ex)
|
||||||
|
{
|
||||||
|
abort(ex);
|
||||||
}
|
}
|
||||||
usart.clearInputBuffer();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool B15F::testConnection()
|
bool B15F::testConnection()
|
||||||
|
|
|
@ -201,20 +201,21 @@ public:
|
||||||
|
|
||||||
/*************************/
|
/*************************/
|
||||||
|
|
||||||
private:
|
|
||||||
|
|
||||||
USART usart;
|
|
||||||
static B15F* instance;
|
|
||||||
static errorhandler_t errorhandler;
|
|
||||||
|
|
||||||
|
|
||||||
// CONSTANTS
|
// CONSTANTS
|
||||||
const std::string PRE = "[B15F] ";
|
const std::string PRE = "[B15F] ";
|
||||||
constexpr static uint8_t MSG_OK = 0xFF;
|
constexpr static uint8_t MSG_OK = 0xFF;
|
||||||
constexpr static uint8_t MSG_FAIL = 0xFE;
|
constexpr static uint8_t MSG_FAIL = 0xFE;
|
||||||
constexpr static uint16_t RECONNECT_TIMEOUT = 64; // ms
|
constexpr static uint16_t RECONNECT_TIMEOUT = 64; // ms
|
||||||
|
constexpr static uint16_t WDT_TIMEOUT = 15; // ms
|
||||||
constexpr static uint8_t RECONNECT_TRIES = 3;
|
constexpr static uint8_t RECONNECT_TRIES = 3;
|
||||||
constexpr static uint32_t BAUDRATE = 57600;
|
constexpr static uint32_t BAUDRATE = 57600;
|
||||||
|
|
||||||
|
private:
|
||||||
|
|
||||||
|
USART usart;
|
||||||
|
static B15F* instance;
|
||||||
|
static errorhandler_t errorhandler;
|
||||||
|
|
||||||
// REQUESTS
|
// REQUESTS
|
||||||
constexpr static uint8_t RQ_DISC = 0;
|
constexpr static uint8_t RQ_DISC = 0;
|
||||||
|
|
|
@ -262,6 +262,10 @@ void stop_selftest(int)
|
||||||
{
|
{
|
||||||
B15F& drv = B15F::getInstance();
|
B15F& drv = B15F::getInstance();
|
||||||
drv.discard();
|
drv.discard();
|
||||||
|
drv.delay_ms(B15F::WDT_TIMEOUT);
|
||||||
|
drv.reconnect();
|
||||||
|
drv.digitalWrite0(0);
|
||||||
|
drv.digitalWrite1(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
void show_selftest_info(int)
|
void show_selftest_info(int)
|
||||||
|
|
Loading…
Reference in a new issue