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 |