Eval » Historie » Version 8
Maximilian Seesslen, 02.02.2023 17:57
| 1 | 1 | Maximilian Seesslen | h1. Eval |
|---|---|---|---|
| 2 | |||
| 3 | Monitor Sensors over longer time. |
||
| 4 | * Temperature |
||
| 5 | * Air quality |
||
| 6 | * Plant sensors |
||
| 7 | |||
| 8 | MCU is 256K. Could even store XML. |
||
| 9 | |||
| 10 | * Timestamp |
||
| 11 | * CAN-ID + Sub-ID |
||
| 12 | * Values interpreted as Text |
||
| 13 | * CSV better because its always finished |
||
| 14 | 2 | Maximilian Seesslen | |
| 15 | h2. Step1 |
||
| 16 | |||
| 17 | * Main first target is to monitor plants over longer range of time |
||
| 18 | * target is csv output |
||
| 19 | * Tatsaechlich kann er ziemlich stupide alles ausgeben; TDT interpretiert |
||
| 20 | 3 | Maximilian Seesslen | * Eigene Temperaturwerte natuerlich. Werden ja schon verschickt. Dann kommt das halt noch mit in die SD |
| 21 | 5 | Maximilian Seesslen | |
| 22 | |||
| 23 | STM32L431RCT6 with QUAD-SPI-Flash (Memory-mapped) and SD-Card-Slot. |
||
| 24 | "MCU":https://www.st.com/resource/en/datasheet/stm32l431rc.pdf |
||
| 25 | |||
| 26 | [[Eval]] |
||
| 27 | 6 | Maximilian Seesslen | * The block size is 512 Bytes |
| 28 | * Blocks are erased automatically. The erase command sets the block to {0} |
||
| 29 | 5 | Maximilian Seesslen | * plain ascii: "2012-06-01 01:00, 1, 3" |
| 30 | ** quite difficult to find the end. |
||
| 31 | ** need to manipulate it afterwards for gnuplot anyway |
||
| 32 | |||
| 33 | * Record any received object vs. perooidically log all objects |
||
| 34 | ** Replay would need all received objects |
||
| 35 | * Bind it to TDT? |
||
| 36 | |||
| 37 | Header |
||
| 38 | 1B Magick 'B' |
||
| 39 | 1B Number of Stamps |
||
| 40 | 2B reserved |
||
| 41 | 4B Block number |
||
| 42 | 4B CRC32 |
||
| 43 | |||
| 44 | 1B Magick 'S' |
||
| 45 | 2B Year |
||
| 46 | 1B Month |
||
| 47 | 1B Day |
||
| 48 | 1B Your |
||
| 49 | 1B Minute |
||
| 50 | 1B Second |
||
| 51 | --- 8B |
||
| 52 | 4B Node |
||
| 53 | 4B Object |
||
| 54 | 1B Data Unit |
||
| 55 | 1B Data Type |
||
| 56 | 4B Value |
||
| 57 | |||
| 58 | Ca. 0x20 Bytes per stamp; 16 Stamps per block |
||
| 59 | |||
| 60 | h1. Todos |
||
| 61 | |||
| 62 | * Behaviour of erasing/writing |
||
| 63 | ** I can only write complete block/512B? |
||
| 64 | ** Have to erase blocks? Why are they '0'; |
||
| 65 | 7 | Maximilian Seesslen | *** No need to rease block. When erasing them, they get '0' |
| 66 | *** A block is 512 Bytes |
||
| 67 | 5 | Maximilian Seesslen | * implement 'sd' command |
| 68 | ** 'e'rasae |
||
| 69 | ** 'w'rite |
||
| 70 | ** 'r'ead |
||
| 71 | ** 'd'ump |
||
| 72 | |||
| 73 | |||
| 74 | h1. Dump |
||
| 75 | |||
| 76 | * Filter Node-ID and Object |
||
| 77 | |||
| 78 | h1. Ablauf |
||
| 79 | |||
| 80 | * Start with start-block from config if available |
||
| 81 | * Search first free block |
||
| 82 | * Store it in config |
||
| 83 | * Collect stamps/opjects |
||
| 84 | * Write block |