MRMS
mrm-lid-can-b.h
1 #pragma once
2 #include "Arduino.h"
3 #include "mrm-board.h"
4 
12 #define CAN_ID_LID_CAN_B0_IN 0x0180
13 #define CAN_ID_LID_CAN_B0_OUT 0x0181
14 #define CAN_ID_LID_CAN_B1_IN 0x0182
15 #define CAN_ID_LID_CAN_B1_OUT 0x0183
16 #define CAN_ID_LID_CAN_B2_IN 0x0184
17 #define CAN_ID_LID_CAN_B2_OUT 0x0185
18 #define CAN_ID_LID_CAN_B3_IN 0x0186
19 #define CAN_ID_LID_CAN_B3_OUT 0x0187
20 #define CAN_ID_LID_CAN_B4_IN 0x0188
21 #define CAN_ID_LID_CAN_B4_OUT 0x0189
22 #define CAN_ID_LID_CAN_B5_IN 0x018A
23 #define CAN_ID_LID_CAN_B5_OUT 0x018B
24 #define CAN_ID_LID_CAN_B6_IN 0x018C
25 #define CAN_ID_LID_CAN_B6_OUT 0x018D
26 #define CAN_ID_LID_CAN_B7_IN 0x018E
27 #define CAN_ID_LID_CAN_B7_OUT 0x018F
28 
29 #define CAN_ID_LID_CAN_B8_IN 0x0280
30 #define CAN_ID_LID_CAN_B8_OUT 0x0281
31 #define CAN_ID_LID_CAN_B9_IN 0x0282
32 #define CAN_ID_LID_CAN_B9_OUT 0x0283
33 #define CAN_ID_LID_CAN_B10_IN 0x0284
34 #define CAN_ID_LID_CAN_B10_OUT 0x0285
35 #define CAN_ID_LID_CAN_B11_IN 0x0286
36 #define CAN_ID_LID_CAN_B11_OUT 0x0287
37 #define CAN_ID_LID_CAN_B12_IN 0x0288
38 #define CAN_ID_LID_CAN_B12_OUT 0x0289
39 #define CAN_ID_LID_CAN_B13_IN 0x028A
40 #define CAN_ID_LID_CAN_B13_OUT 0x028B
41 #define CAN_ID_LID_CAN_B14_IN 0x028C
42 #define CAN_ID_LID_CAN_B14_OUT 0x028D
43 #define CAN_ID_LID_CAN_B15_IN 0x028E
44 #define CAN_ID_LID_CAN_B15_OUT 0x028F
45 
46 //CANBus commands
47 #define COMMAND_LID_CAN_B_CALIBRATE 0x05
48 #define COMMAND_LID_CAN_B_RANGING_TYPE 0x42
49 
50 #define MRM_LID_CAN_INACTIVITY_ALLOWED_MS 10000
51 
52 
53 class Mrm_lid_can_b : public SensorBoard
54 {
55  std::vector<uint16_t>* readings; // Analog readings of all sensors
56 
61  bool started(uint8_t deviceNumber);
62 
63 public:
64 
71  Mrm_lid_can_b(Robot* robot = NULL, uint8_t maxNumberOfBoards = 14);
72 
73  ~Mrm_lid_can_b();
74 
78  void add(char * deviceName = (char*)"");
79 
83  void calibration(uint8_t deviceNumber = 0);
84 
89  bool messageDecode(uint32_t canId, uint8_t data[8]);
90 
95  void rangingType(uint8_t deviceNumber, uint8_t value = 0);
96 
101  uint16_t reading(uint8_t deviceNumber = 0);
102 
105  void readingsPrint();
106 
111  void test(uint8_t deviceNumber = 0xFF, uint16_t betweenTestsMs = 0);
112 
113 };
114 
115 
Definition: mrm-lid-can-b.h:54
uint16_t reading(uint8_t deviceNumber=0)
Definition: mrm-lid-can-b.cpp:157
bool messageDecode(uint32_t canId, uint8_t data[8])
Definition: mrm-lid-can-b.cpp:114
void calibration(uint8_t deviceNumber=0)
Definition: mrm-lid-can-b.cpp:99
Mrm_lid_can_b(Robot *robot=NULL, uint8_t maxNumberOfBoards=14)
Definition: mrm-lid-can-b.cpp:10
void readingsPrint()
Definition: mrm-lid-can-b.cpp:171
void rangingType(uint8_t deviceNumber, uint8_t value=0)
Definition: mrm-lid-can-b.cpp:142
void test(uint8_t deviceNumber=0xFF, uint16_t betweenTestsMs=0)
Definition: mrm-lid-can-b.cpp:209
void add(char *deviceName=(char *)"")
Definition: mrm-lid-can-b.cpp:21
Definition: mrm-robot.h:42
Definition: mrm-board.h:356