From f4ca17346c1f53cc5c972ba7859e9d66250268dc Mon Sep 17 00:00:00 2001 From: Tristan Krause Date: Mon, 1 Apr 2019 14:30:21 +0200 Subject: [PATCH] send block scheint stabil --- drv/usart.cpp | 43 +++++++++++++++++++++++++++++++++++++------ drv/usart.h | 8 +++++--- drv/usart.o | Bin 28400 -> 30696 bytes main | Bin 61792 -> 61888 bytes 4 files changed, 42 insertions(+), 9 deletions(-) diff --git a/drv/usart.cpp b/drv/usart.cpp index 964ddfc..70e738e 100644 --- a/drv/usart.cpp +++ b/drv/usart.cpp @@ -74,14 +74,13 @@ void USART::writeInt(uint16_t d) int USART::read_timeout(uint8_t* buffer, uint16_t offset, uint8_t len, uint32_t timeout) { - buffer += offset; uint32_t elapsed = 0; int n_read = -1; auto start = std::chrono::steady_clock::now(); auto end = start; while(elapsed < timeout) { - n_read = read(file_desc, buffer, len); + n_read = read(file_desc, buffer + offset, len); if (n_read == len) return n_read; @@ -92,6 +91,24 @@ int USART::read_timeout(uint8_t* buffer, uint16_t offset, uint8_t len, uint32_t return n_read; } +int USART::write_timeout(uint8_t* buffer, uint16_t offset, uint8_t len, uint32_t timeout) +{ + uint32_t elapsed = 0; + int n_sent = -1; + auto start = std::chrono::steady_clock::now(); + auto end = start; + while(elapsed < timeout) + { + n_sent = write(file_desc, buffer + offset, len); + if (n_sent == len) + return n_sent; + + end = std::chrono::steady_clock::now(); + elapsed = std::chrono::duration_cast(end - start).count(); + } + + return n_sent; +} void USART::writeBlock(uint8_t* buffer, uint16_t offset, uint8_t len) { @@ -99,15 +116,25 @@ void USART::writeBlock(uint8_t* buffer, uint16_t offset, uint8_t len) uint8_t crc; uint8_t aw; uint16_t us_per_bit = (1000000 / baudrate) * 16; + uint8_t block_end = BLOCK_END; do { crc = 0; - writeByte(len); + // send block length + int n_sent = write_timeout(&len, 0, 1, us_per_bit); + if(n_sent != 1) + throw std::runtime_error("fatal (send): " + std::to_string(n_sent)); + + // send block + n_sent = write_timeout(buffer, 0, len, us_per_bit * len); + if(n_sent != len) + throw std::runtime_error("fatal (send #2): " + std::to_string(n_sent)); + + // calc crc for(uint8_t i = 0; i < len; i++) { - writeByte(buffer[i]); usleep(us_per_bit); crc ^= buffer[i]; @@ -119,10 +146,14 @@ void USART::writeBlock(uint8_t* buffer, uint16_t offset, uint8_t len) } } - writeByte(crc); + n_sent = write_timeout(&crc, 0, 1, us_per_bit); + if(n_sent != 1) + throw std::runtime_error("fatal (send): " + std::to_string(n_sent)); usleep(us_per_bit); - writeByte(0x80); // Stoppzeichen für Block + n_sent = write_timeout(&block_end, 0, 1, us_per_bit); + if(n_sent != 1) + throw std::runtime_error("fatal (send): " + std::to_string(n_sent)); usleep(us_per_bit); int n_read = read_timeout(&aw, 0, 1, us_per_bit); diff --git a/drv/usart.h b/drv/usart.h index 2355f2b..36a0c33 100644 --- a/drv/usart.h +++ b/drv/usart.h @@ -79,6 +79,7 @@ public: uint16_t readInt(void); int read_timeout(uint8_t* buffer, uint16_t offset, uint8_t len, uint32_t timeout); + int write_timeout(uint8_t* buffer, uint16_t offset, uint8_t len, uint32_t timeout); void writeBlock(uint8_t* buffer, uint16_t offset, uint8_t len); bool readBlock(uint8_t* buffer, uint16_t offset); @@ -116,15 +117,16 @@ public: /***************************************/ + constexpr static uint8_t CRC7_POLY = 0x91; + constexpr static uint8_t MAX_BLOCK_SIZE = 16; + constexpr static uint8_t BLOCK_END = 0x80; private: int file_desc = -1; // Linux Dateideskriptor uint32_t baudrate = 9600; int TEST = 0; uint8_t timeout = 10; // in Dezisekunden - - constexpr static uint8_t CRC7_POLY = 0x91; - constexpr static uint8_t MAX_BLOCK_SIZE = 16; + uint8_t buffer[MAX_BLOCK_SIZE + 3]; }; diff --git a/drv/usart.o b/drv/usart.o index 56837e6147800dded77d22ba5ca55202ff10f44a..58b46cd09bf86da9ca04dd939eced03bd8dc44c6 100644 GIT binary patch literal 30696 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 literal 28400 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 delta 15904 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