From 822c8a21d7fd834a75be20765be4b4f2e5133009 Mon Sep 17 00:00:00 2001
From: jaseg <git@jaseg.de>
Date: Fri, 27 Nov 2020 18:43:00 +0100
Subject: test code

---
 prototype/fw/src/main.c        | 29 ++++++++++++++++++-----------
 prototype/fw/tools/ser_test.py |  6 ++++--
 2 files changed, 22 insertions(+), 13 deletions(-)

diff --git a/prototype/fw/src/main.c b/prototype/fw/src/main.c
index 16e1b78..51e69e8 100644
--- a/prototype/fw/src/main.c
+++ b/prototype/fw/src/main.c
@@ -53,7 +53,7 @@ int main(void) {
 
     USART1->CR1 = USART_CR1_TE | USART_CR1_RE;
     USART1->BRR = (apb2_clock + baudrate/2) / baudrate;
-    USART1->CR2 |= USART_CR2_RXINV;
+    USART1->CR2 |= USART_CR2_RXINV; //| USART_CR2_TXINV;
     USART1->CR1 |= USART_CR1_UE;
 
     int req_seq = 0;
@@ -70,25 +70,32 @@ int main(void) {
     unsigned int rx_crc_error = 0;
 
     USART1->TDR = 0; /* Kick off transmission */
+    int i = 0;
     while (23) {
-        /*
         if (tx_st.remaining_bytes == 0) {
-            res_buf.req_seq = req_seq;
-            res_buf.res_seq = res_seq;
-            res_seq += 1;
-            packetize(&res_buf, &res_buf.trailer);
-            tx_st.tx_char = tx_buf;
-            tx_st.remaining_bytes = cobs_encode((uint8_t *)&res_buf, sizeof(res_buf), tx_buf, sizeof(tx_buf));;
+            if (i > 10000) {
+                res_buf.req_seq = req_seq;
+                res_buf.res_seq = res_seq;
+                res_seq += 1;
+                //packetize(&res_buf, &res_buf.trailer);
+                tx_st.tx_char = tx_buf;
+                //tx_st.remaining_bytes = cobs_encode((uint8_t *)&res_buf, sizeof(res_buf), tx_buf, sizeof(tx_buf));;
+                for (int k=0; k < 8; k++)
+                    tx_buf[k] = 255-k;
+                for (int k=0; k < 8; k++)
+                    tx_buf[8+k] = (k + 1) % 8;
+                tx_st.remaining_bytes = 16;
+                i = 0;
+            } else {
+                i++;
+            }
         }
 
         if (USART1->ISR & USART_ISR_TXE && tx_st.remaining_bytes > 0) {
-            for (int i=0; i<100; i++)
-                asm volatile ("nop");
             USART1->TDR = *(tx_st.tx_char);
             tx_st.tx_char += 1;
             tx_st.remaining_bytes -= 1;
         }
-        */
 
         if (USART1->ISR & USART_ISR_ORE)
             USART1->ICR = USART_ICR_ORECF;
diff --git a/prototype/fw/tools/ser_test.py b/prototype/fw/tools/ser_test.py
index d9dec62..14addbd 100644
--- a/prototype/fw/tools/ser_test.py
+++ b/prototype/fw/tools/ser_test.py
@@ -28,13 +28,14 @@ if __name__ == '__main__':
     make_color = lambda x: f'\033[38;5;{x}m'
     field_colors = [ make_color(x) for x in [ 48, 48, 48, 48, 220, 220, 220, 220, 207, 207, 207, 207 ] ]
     last_tx = time.time()
+    lastc = -10000
     while True:
         data = ser.read()
         for c in data:
             if byte_count == 0:
                 print(f'\033[38;5;244m{time.time() - start_time: 8.3f} \033[0m', end='')
 
-            col = '\033[91m' if c == 0 else '\033[0m'
+            col = '\033[91m' if c == 0 else ('\033[0m' if c == (lastc - 1) % 256 else '\033[92m')
             print(f'{col}{c:02x}', end=' ')
             line += bytes([c])
             byte_count += 1
@@ -63,6 +64,7 @@ if __name__ == '__main__':
                 print(f'\033[93m | {printable}\033[0m')
                 byte_count = 0
                 line = b''
+            lastc = c
 
 
         if time.time() - last_tx > 0.01:
@@ -70,6 +72,6 @@ if __name__ == '__main__':
             data = struct.pack('<I', seq)
             #seq += 1
             #ser.write(bytes(list(range(255, -1, -1))))
-            ser.write(cobs.encode(data + struct.pack('<I', zlib.crc32(data))) + b'\0')
+            #ser.write(cobs.encode(data + struct.pack('<I', zlib.crc32(data))) + b'\0')
             last_tx = time.time()
         #time.sleep(0.01)
-- 
cgit