mbeam_imagenex
MBeamRaw.hpp
Go to the documentation of this file.
1 #ifndef MBEAM_IMAGENEX_MBEAMRAW_HPP
2 #define MBEAM_IMAGENEX_MBEAMRAW_HPP
3 
4 //#include "Config.hpp"
5 #include "MBeamTypes.hpp"
6 
7 #include <stdint.h>
8 #include <vector>
9 
10 
11 namespace mbeam_imagenex {
12  namespace raw {
13 
14 #define MBEAM_CMD_LEN 0x100
15 #define MBEAM_HEADER1 0x45
16 #define MBEAM_HEADER2 0x43
17 #define MBEAM_REPL_START 0x38
18 #define MBEAM_MAX_REPL_LENGTH 0xEB60
19 #define MBEAM_REPLY_B 0x42
20 #define MBEAM_REPLY_P 0x50
21 #define MBEAM_DEFAULT_SV 1500
22 
23 
24 
25 
26  struct MBeamExtCmd{
27  uint8_t header1;
28  uint8_t header2;
29  uint8_t id;
30  uint8_t ctrl_byte1;
31  uint8_t ctrl_byte2;
32  uint8_t ctrl_byte3;
33  uint8_t ctrl_byte4;
34  uint8_t range;
35  uint8_t gain;
36  uint8_t disp_gain;
37  uint8_t gain_eq;
38  uint8_t sector_size;
39  uint8_t beam_width;
40  uint8_t no_beams;
41  uint8_t averaging;
42  uint8_t reserved0;
43  uint8_t reserved1;
44  uint8_t sv_high;
45  uint8_t sv_low;
46  uint8_t mode;
47  uint8_t out83p83b;
48  uint8_t prof_pt_enable;
49  uint8_t prof_min_range;
50  uint8_t prof_min_lev;
51  uint8_t xdcr_up_dn;
52  uint8_t prof_tilt;
53  uint8_t reserved2;
54  uint8_t reserved3;
55  uint8_t rec837;
56  uint8_t rec83p;
57  uint8_t reserved4;
58  uint8_t reserved5;
59  uint8_t reserved6;
60  uint8_t reserved7;
61  uint8_t prof_filter;
62 
66  id(0),
69  ctrl_byte3(0),
70  ctrl_byte4(0),
71  range(RANGE5),
72  gain(6),
73  disp_gain(50),
74  gain_eq(1),
78  averaging(5),
79  reserved0(0),
80  reserved1(0),
83  prof_pt_enable(1),
84  prof_min_range(0),
85  prof_min_lev(10),
87  prof_tilt(180),
88  reserved2(0),
89  reserved3(0),
90  rec837(0),
91  rec83p(1),
92  reserved4(0),
93  reserved5(0),
94  reserved6(0),
95  reserved7(0),
97  *((uint16_t*)(&sv_high)) = (uint16_t)MBEAM_DEFAULT_SV*10;
98  }
99 
100  MBeamExtCmd & operator>>(std::vector<uint8_t>& msg)
101  {
102  msg.resize(MBEAM_CMD_LEN);
103  msg[0] = header1;
104  msg[1] = header2;
105  msg[2] = id;
106  msg[3] = ctrl_byte1;
107  msg[4] = ctrl_byte2;
108  msg[5] = ctrl_byte3;
109  msg[6] = ctrl_byte4;
110  msg[7] = range;
111  msg[8] = gain;
112  msg[9] = disp_gain;
113  msg[10] = gain_eq;
114  msg[11] = sector_size;
115  msg[12] = beam_width;
116  msg[13] = no_beams;
117  msg[14] = averaging;
118  msg[15] = reserved0;
119  msg[16] = reserved1;
120  msg[17] = sv_high;
121  msg[18] = sv_low;
122  msg[19] = mode;
123  msg[20] = out83p83b;
124  msg[21] = prof_pt_enable;
125  msg[22] = prof_min_range;
126  msg[23] = prof_min_lev;
127  msg[24] = xdcr_up_dn;
128  msg[25] = prof_tilt;
129  msg[26] = reserved2;
130  msg[27] = reserved3;
131  msg[28] = rec837;
132  msg[29] = rec83p;
133  msg[30] = reserved4;
134  msg[31] = reserved5;
135  msg[32] = reserved6;
136  msg[33] = reserved7;
137  msg[34] = prof_filter;
138  for(int i = 35;i<MBEAM_CMD_LEN;i++){
139  msg[i] = 0;
140  }
141  return *this;
142  }
143  };
144  }
145 }
146 
147 #endif
uint8_t ctrl_byte4
Definition: MBeamRaw.hpp:33
uint8_t ctrl_byte3
Definition: MBeamRaw.hpp:32
uint8_t gain
Definition: MBeamRaw.hpp:35
uint8_t reserved0
Definition: MBeamRaw.hpp:42
uint8_t sv_low
Definition: MBeamRaw.hpp:45
uint8_t out83p83b
Definition: MBeamRaw.hpp:47
uint8_t sector_size
Definition: MBeamRaw.hpp:38
uint8_t xdcr_up_dn
Definition: MBeamRaw.hpp:51
uint8_t ctrl_byte2
Definition: MBeamRaw.hpp:31
uint8_t range
Definition: MBeamRaw.hpp:34
#define MBEAM_HEADER2
Definition: MBeamRaw.hpp:16
uint8_t reserved2
Definition: MBeamRaw.hpp:53
#define MBEAM_DEFAULT_SV
Definition: MBeamRaw.hpp:21
Definition: MBeamTypes.hpp:54
uint8_t reserved6
Definition: MBeamRaw.hpp:59
uint8_t prof_min_range
Definition: MBeamRaw.hpp:49
uint8_t prof_filter
Definition: MBeamRaw.hpp:61
uint8_t reserved1
Definition: MBeamRaw.hpp:43
uint8_t reserved7
Definition: MBeamRaw.hpp:60
uint8_t reserved5
Definition: MBeamRaw.hpp:58
uint8_t ctrl_byte1
Definition: MBeamRaw.hpp:30
MBeamExtCmd & operator>>(std::vector< uint8_t > &msg)
Definition: MBeamRaw.hpp:100
uint8_t disp_gain
Definition: MBeamRaw.hpp:36
MBeamExtCmd()
Definition: MBeamRaw.hpp:63
Definition: MBeamTypes.hpp:41
uint8_t sv_high
Definition: MBeamRaw.hpp:44
uint8_t prof_pt_enable
Definition: MBeamRaw.hpp:48
#define MBEAM_HEADER1
Definition: MBeamRaw.hpp:15
Definition: MBeamRaw.hpp:26
Definition: MBeamTypes.hpp:8
uint8_t header1
Definition: MBeamRaw.hpp:27
uint8_t rec837
Definition: MBeamRaw.hpp:55
uint8_t rec83p
Definition: MBeamRaw.hpp:56
Definition: MBeamTypes.hpp:12
uint8_t no_beams
Definition: MBeamRaw.hpp:40
uint8_t prof_tilt
Definition: MBeamRaw.hpp:52
uint8_t gain_eq
Definition: MBeamRaw.hpp:37
Definition: MBeamTypes.hpp:66
Definition: MBeamTypes.hpp:48
#define MBEAM_CMD_LEN
Definition: MBeamRaw.hpp:14
uint8_t reserved3
Definition: MBeamRaw.hpp:54
Definition: MBeamTypes.hpp:73
uint8_t header2
Definition: MBeamRaw.hpp:28
Definition: MBeamTypes.hpp:61
Definition: MBeamTypes.hpp:17
uint8_t id
Definition: MBeamRaw.hpp:29
Definition: MBeamTypes.hpp:36
uint8_t prof_min_lev
Definition: MBeamRaw.hpp:50
uint8_t beam_width
Definition: MBeamRaw.hpp:39
uint8_t averaging
Definition: MBeamRaw.hpp:41
uint8_t mode
Definition: MBeamRaw.hpp:46
uint8_t reserved4
Definition: MBeamRaw.hpp:57