MRMS
mrm-ir-finder-can.h
1 #pragma once
2 #include "Arduino.h"
3 #include <mrm-board.h>
4 
12 #define CAN_ID_IR_FINDER_CAN0_IN 0x0290
13 #define CAN_ID_IR_FINDER_CAN0_OUT 0x0291
14 #define CAN_ID_IR_FINDER_CAN1_IN 0x0292
15 #define CAN_ID_IR_FINDER_CAN1_OUT 0x0293
16 #define CAN_ID_IR_FINDER_CAN2_IN 0x0294
17 #define CAN_ID_IR_FINDER_CAN2_OUT 0x0295
18 #define CAN_ID_IR_FINDER_CAN3_IN 0x0296
19 #define CAN_ID_IR_FINDER_CAN3_OUT 0x0297
20 #define CAN_ID_IR_FINDER_CAN4_IN 0x0298
21 #define CAN_ID_IR_FINDER_CAN4_OUT 0x0299
22 #define CAN_ID_IR_FINDER_CAN5_IN 0x029A
23 #define CAN_ID_IR_FINDER_CAN5_OUT 0x029B
24 #define CAN_ID_IR_FINDER_CAN6_IN 0x029C
25 #define CAN_ID_IR_FINDER_CAN6_OUT 0x029D
26 #define CAN_ID_IR_FINDER_CAN7_IN 0x029E
27 #define CAN_ID_IR_FINDER_CAN7_OUT 0x029F
28 
29 #define MRM_IR_FINDER_CAN_SENSOR_COUNT 12 // Number of IR receivers in each device.
30 
31 //CANBus commands
32 #define COMMAND_IR_FINDER_CAN_SENDING_SENSORS_1_TO_3 0x04
33 #define COMMAND_IR_FINDER_CAN_SENDING_SENSORS_4_TO_6 0x05
34 #define COMMAND_IR_FINDER_CAN_SENDING_SENSORS_7_TO_9 0x06
35 #define COMMAND_IR_FINDER_CAN_SENDING_SENSORS_10_TO_12 0x08
36 #define COMMAND_IR_FINDER_CAN_SENDING_ANGLE_AND_DISTANCE 0x09
37 
39 {
40  std::vector<uint16_t[MRM_IR_FINDER_CAN_SENSOR_COUNT]>* readings; // Cumulative readings of all sensors
41  int16_t angle;
42  uint16_t distance;
43 
44 public:
45 
52  Mrm_ir_finder_can(Robot* robot = 0, uint8_t maxNumberOfBoards = 1);
53 
55 
59  void add(char * deviceName = (char*)"");
60 
65  bool messageDecode(uint32_t canId, uint8_t data[8]);
66 
72  uint16_t reading(uint8_t receiverNumberInSensor, uint8_t deviceNumber = 0);
73 
76  void readingsPrint();
77 
80  void test();
81 
84  void testCalculated();
85 };
86 
87 
88 
Definition: mrm-ir-finder-can.h:39
void readingsPrint()
Definition: mrm-ir-finder-can.cpp:124
void testCalculated()
Definition: mrm-ir-finder-can.cpp:157
Mrm_ir_finder_can(Robot *robot=0, uint8_t maxNumberOfBoards=1)
Definition: mrm-ir-finder-can.cpp:8
uint16_t reading(uint8_t receiverNumberInSensor, uint8_t deviceNumber=0)
Definition: mrm-ir-finder-can.cpp:114
void test()
Definition: mrm-ir-finder-can.cpp:135
void add(char *deviceName=(char *)"")
Definition: mrm-ir-finder-can.cpp:19
bool messageDecode(uint32_t canId, uint8_t data[8])
Definition: mrm-ir-finder-can.cpp:66
Definition: mrm-robot.h:42
Definition: mrm-board.h:356