EV3UartGenerator  prerel
/home/shenghao/eclipse-workspace/EV3UartGenerator/main.cpp
Go to the documentation of this file.
1 /*
2  * main.cpp
3  *
4  * Created on: 29 Mar 2018
5  * Author: shenghao
6  */
7 
8 #include <framing.hpp>
9 #include <magics.hpp>
10 #include <iostream>
11 #include <cstdio>
12 #include <cstring>
13 #include <cstdint>
14 
15 
16 //EVERYTHING EXCEPT WRITE, DATA, and SELECT CHECKS OUT!
17 
18 int main(int argc, char** argv) {
19  using namespace std;
20  using namespace EV3UartGenerator::Framing;
21  using namespace EV3UartGenerator::Magics;
22  uint8_t buffer[1024];
23 
24  memset(reinterpret_cast<void*>(buffer), 0, 1024);
25  uint32_t sz_tally = 0;
26 
27  sz_tally += frame_cmd_type_message(buffer, 0x1d);
28  sz_tally += frame_cmd_modes_message(buffer + sz_tally, 0x05, 0x02);
29  sz_tally += frame_cmd_speed_message(buffer + sz_tally, 57600);
30 
31  sz_tally += frame_info_message_name(buffer + sz_tally, 5, "COL-CAL");
32  sz_tally += frame_info_message_span(buffer + sz_tally, 5, INFO_SPAN::RAW, 0,
33  65535);
34  sz_tally += frame_info_message_span(buffer + sz_tally, 5, INFO_SPAN::SI, 0,
35  65535);
36  sz_tally += frame_info_message_format(buffer + sz_tally, 5, 4,
37  INFO_DTYPE::S16, 5, 0);
38 
39  sz_tally += frame_info_message_name(buffer + sz_tally, 4, "RGB-RAW");
40  sz_tally += frame_info_message_span(buffer + sz_tally, 4, INFO_SPAN::RAW, 0,
41  1020.188);
42  sz_tally += frame_info_message_span(buffer + sz_tally, 4, INFO_SPAN::SI, 0,
43  1020.188);
44  sz_tally += frame_info_message_format(buffer + sz_tally, 4, 3,
45  INFO_DTYPE::S16, 4, 0);
46 
47  sz_tally += frame_info_message_name(buffer + sz_tally, 3, "REF-RAW");
48  sz_tally += frame_info_message_span(buffer + sz_tally, 3, INFO_SPAN::RAW, 0,
49  1020.188);
50  sz_tally += frame_info_message_span(buffer + sz_tally, 3, INFO_SPAN::SI, 0,
51  1020.188);
52  sz_tally += frame_info_message_format(buffer + sz_tally, 3, 2,
53  INFO_DTYPE::S16, 4, 0);
54 
55  sz_tally += frame_info_message_name(buffer + sz_tally, 2, "COL-COLOR");
56  sz_tally += frame_info_message_span(buffer + sz_tally, 2, INFO_SPAN::RAW, 0,
57  8);
58  sz_tally += frame_info_message_span(buffer + sz_tally, 2, INFO_SPAN::SI, 0,
59  8);
60  sz_tally += frame_info_message_symbol(buffer + sz_tally, 2, "col");
61  sz_tally += frame_info_message_format(buffer + sz_tally, 2, 1,
62  INFO_DTYPE::S8, 2, 0);
63 
64  sz_tally += frame_info_message_name(buffer + sz_tally, 1, "COL-AMBIENT");
65  sz_tally += frame_info_message_span(buffer + sz_tally, 1, INFO_SPAN::RAW, 0,
66  100);
67  sz_tally += frame_info_message_span(buffer + sz_tally, 1, INFO_SPAN::SI, 0,
68  100);
69  sz_tally += frame_info_message_symbol(buffer + sz_tally, 1, "pct");
70  sz_tally += frame_info_message_format(buffer + sz_tally, 1, 1,
71  INFO_DTYPE::S8, 3, 0);
72 
73  sz_tally += frame_info_message_name(buffer + sz_tally, 0, "COL-REFLECT");
74  sz_tally += frame_info_message_span(buffer + sz_tally, 0, INFO_SPAN::RAW, 0,
75  100);
76  sz_tally += frame_info_message_span(buffer + sz_tally, 0, INFO_SPAN::SI, 0,
77  100);
78  sz_tally += frame_info_message_symbol(buffer + sz_tally, 0, "pct");
79  sz_tally += frame_info_message_format(buffer + sz_tally, 0, 1,
80  INFO_DTYPE::S8, 3, 0);
81 
82  sz_tally += frame_sys_message(buffer + sz_tally, SYS::ACK);
83  std::cout << sz_tally << std::endl;
84 
85  FILE* f = fopen("light_sensor_simulated.bin", "w");
86  if (f == nullptr) {
87  exit(1);
88  }
89  fwrite(reinterpret_cast<void*>(buffer), 1, sz_tally, f);
90  fclose(f);
91 
92 
93 }
94 
95 
96 
97 
int8_t frame_info_message_name(uint8_t *dest, const uint8_t mode, const char *name)
Definition: framing.cpp:87
int main(int argc, char **argv)
Definition: main.cpp:18
int8_t frame_cmd_modes_message(uint8_t *dest, const uint8_t modes, const uint8_t modes_available)
Definition: framing.cpp:33
int8_t frame_cmd_speed_message(uint8_t *dest, const uint32_t speed)
Definition: framing.cpp:45
int8_t frame_info_message_symbol(uint8_t *dest, const uint8_t mode, const char *symbol)
Definition: framing.cpp:142
int8_t frame_sys_message(uint8_t *dest, Magics::SYS sys_type)
Definition: framing.cpp:17
int8_t frame_info_message_span(uint8_t *dest, const uint8_t mode, Magics::INFO_SPAN span_type, const float lower, const float upper)
Definition: framing.cpp:109
int8_t frame_info_message_format(uint8_t *dest, const uint8_t mode, const uint8_t elems, Magics::INFO_DTYPE data_type, const uint8_t width, const uint8_t decimals)
Definition: framing.cpp:167
int8_t frame_cmd_type_message(uint8_t *dest, const uint8_t type)
Definition: framing.cpp:23