MRMS
mrm-lid-can-b2.h
1 #pragma once
2 #include "Arduino.h"
3 #include <mrm-board.h>
4 
12 #define CAN_ID_LID_CAN_B2_0_IN 0x0150
13 #define CAN_ID_LID_CAN_B2_0_OUT 0x0151
14 #define CAN_ID_LID_CAN_B2_1_IN 0x0152
15 #define CAN_ID_LID_CAN_B2_1_OUT 0x0153
16 #define CAN_ID_LID_CAN_B2_2_IN 0x0154
17 #define CAN_ID_LID_CAN_B2_2_OUT 0x0155
18 #define CAN_ID_LID_CAN_B2_3_IN 0x0156
19 #define CAN_ID_LID_CAN_B2_3_OUT 0x0157
20 #define CAN_ID_LID_CAN_B2_4_IN 0x0158
21 #define CAN_ID_LID_CAN_B2_4_OUT 0x0159
22 #define CAN_ID_LID_CAN_B2_5_IN 0x015A
23 #define CAN_ID_LID_CAN_B2_5_OUT 0x015B
24 #define CAN_ID_LID_CAN_B2_6_IN 0x015C
25 #define CAN_ID_LID_CAN_B2_6_OUT 0x015D
26 #define CAN_ID_LID_CAN_B2_7_IN 0x015E
27 #define CAN_ID_LID_CAN_B2_7_OUT 0x015F
28 
29 #define CAN_ID_LID_CAN_B2_8_IN 0x0270
30 #define CAN_ID_LID_CAN_B2_8_OUT 0x0271
31 #define CAN_ID_LID_CAN_B2_9_IN 0x0272
32 #define CAN_ID_LID_CAN_B2_9_OUT 0x0273
33 #define CAN_ID_LID_CAN_B2_10_IN 0x0274
34 #define CAN_ID_LID_CAN_B2_10_OUT 0x0275
35 #define CAN_ID_LID_CAN_B2_11_IN 0x0276
36 #define CAN_ID_LID_CAN_B2_11_OUT 0x0277
37 #define CAN_ID_LID_CAN_B2_12_IN 0x0278
38 #define CAN_ID_LID_CAN_B2_12_OUT 0x0279
39 #define CAN_ID_LID_CAN_B2_13_IN 0x027A
40 #define CAN_ID_LID_CAN_B2_13_OUT 0x027B
41 #define CAN_ID_LID_CAN_B2_14_IN 0x027C
42 #define CAN_ID_LID_CAN_B2_14_OUT 0x027D
43 #define CAN_ID_LID_CAN_B2_15_IN 0x027E
44 #define CAN_ID_LID_CAN_B2_15_OUT 0x027F
45 
46 //CANBus commands
47 #define COMMAND_LID_CAN_B2_CALIBRATE 0x05
48 #define COMMAND_LID_CAN_B2_DISTANCE_MODE 0x50
49 #define COMMAND_LID_CAN_B2_TIMING_BUDGET 0x51
50 #define COMMAND_LID_CAN_B2_MEASUREMENT_TIME 0x52
51 #define COMMAND_LID_CAN_B2_ROI 0x53
52 
53 #define MRM_LID_CAN_B2_INACTIVITY_ALLOWED_MS 10000
54 
56 {
57  std::vector<uint16_t>* readings; // Analog readings of all sensors
58 
63  bool started(uint8_t deviceNumber);
64 
65 public:
66 
72  Mrm_lid_can_b2(Robot* robot = NULL, uint8_t maxDevices = 12);
73 
74  ~Mrm_lid_can_b2();
75 
79  void add(char * deviceName = (char*)"");
80 
84  void calibration(uint8_t deviceNumber = 0);
85 
89  void defaults(uint8_t deviceNumber = 0xFF);
90 
96  void distanceMode(uint8_t deviceNumber, bool isShort = true);
97 
103  void measurementTime(uint8_t deviceNumber, uint16_t ms = 100);
104 
109  bool messageDecode(uint32_t canId, uint8_t data[8]);
110 
116  uint16_t reading(uint8_t deviceNumber = 0);
117 
120  void readingsPrint();
121 
128  void roi(uint8_t deviceNumber, uint8_t x = 16, uint8_t y = 16);
129 
132  void test();
133 
139  void timingBudget(uint8_t deviceNumber, uint16_t ms = 100);
140 };
141 
Definition: mrm-lid-can-b2.h:56
void timingBudget(uint8_t deviceNumber, uint16_t ms=100)
Definition: mrm-lid-can-b2.cpp:263
bool messageDecode(uint32_t canId, uint8_t data[8])
Definition: mrm-lid-can-b2.cpp:136
void roi(uint8_t deviceNumber, uint8_t x=16, uint8_t y=16)
Definition: mrm-lid-can-b2.cpp:195
void distanceMode(uint8_t deviceNumber, bool isShort=true)
Definition: mrm-lid-can-b2.cpp:97
void add(char *deviceName=(char *)"")
Definition: mrm-lid-can-b2.cpp:21
void measurementTime(uint8_t deviceNumber, uint16_t ms=100)
Definition: mrm-lid-can-b2.cpp:118
void readingsPrint()
Definition: mrm-lid-can-b2.cpp:181
void defaults(uint8_t deviceNumber=0xFF)
Definition: mrm-lid-can-b2.cpp:81
Mrm_lid_can_b2(Robot *robot=NULL, uint8_t maxDevices=12)
Definition: mrm-lid-can-b2.cpp:10
uint16_t reading(uint8_t deviceNumber=0)
Definition: mrm-lid-can-b2.cpp:168
void test()
Definition: mrm-lid-can-b2.cpp:238
void calibration(uint8_t deviceNumber=0)
Definition: mrm-lid-can-b2.cpp:67
Definition: mrm-robot.h:42
Definition: mrm-board.h:356