Parser.java
Go to the documentation of this file.
1 /* AUTO-GENERATED FILE. DO NOT MODIFY.
2  *
3  * This class was automatically generated by the
4  * java mavlink generator tool. It should not be modified by hand.
5  */
6 
7 package com.MAVLink;
8 
11 
12 public class Parser {
13 
17  enum MAV_states {
19  }
20 
21  MAV_states state = MAV_states.MAVLINK_PARSE_STATE_UNINIT;
22 
24  private MAVLinkPacket m;
25 
26  public Parser() {
27  this(false);
28  }
29 
30  public Parser(boolean ignoreRadioPacketStats) {
31  stats = new MAVLinkStats(ignoreRadioPacketStats);
32  }
33 
43  public MAVLinkPacket mavlink_parse_char(int c) {
44 
45  switch (state) {
48 
49  if (c == MAVLinkPacket.MAVLINK_STX) {
50  state = MAV_states.MAVLINK_PARSE_STATE_GOT_STX;
51  }
52  break;
53 
55  m = new MAVLinkPacket(c);
56  state = MAV_states.MAVLINK_PARSE_STATE_GOT_LENGTH;
57  break;
58 
60  m.seq = c;
61  state = MAV_states.MAVLINK_PARSE_STATE_GOT_SEQ;
62  break;
63 
65  m.sysid = c;
66  state = MAV_states.MAVLINK_PARSE_STATE_GOT_SYSID;
67  break;
68 
70  m.compid = c;
71  state = MAV_states.MAVLINK_PARSE_STATE_GOT_COMPID;
72  break;
73 
75  m.msgid = c;
76  if (m.len == 0) {
77  state = MAV_states.MAVLINK_PARSE_STATE_GOT_PAYLOAD;
78  } else {
79  state = MAV_states.MAVLINK_PARSE_STATE_GOT_MSGID;
80  }
81  break;
82 
84  m.payload.add((byte) c);
85  if (m.payloadIsFilled()) {
86  state = MAV_states.MAVLINK_PARSE_STATE_GOT_PAYLOAD;
87  }
88  break;
89 
91  m.generateCRC();
92  // Check first checksum byte
93  if (c != m.crc.getLSB()) {
94  state = MAV_states.MAVLINK_PARSE_STATE_IDLE;
95  if (c == MAVLinkPacket.MAVLINK_STX) {
96  state = MAV_states.MAVLINK_PARSE_STATE_GOT_STX;
97  m.crc.start_checksum();
98  }
99  stats.crcError();
100  } else {
101  state = MAV_states.MAVLINK_PARSE_STATE_GOT_CRC1;
102  }
103  break;
104 
106  // Check second checksum byte
107  if (c != m.crc.getMSB()) {
108  state = MAV_states.MAVLINK_PARSE_STATE_IDLE;
109  if (c == MAVLinkPacket.MAVLINK_STX) {
110  state = MAV_states.MAVLINK_PARSE_STATE_GOT_STX;
111  m.crc.start_checksum();
112  }
113  stats.crcError();
114  } else { // Successfully received the message
115  stats.newPacket(m);
116  state = MAV_states.MAVLINK_PARSE_STATE_IDLE;
117  return m;
118  }
119 
120  break;
121 
122  }
123  return null;
124  }
125 }


mavlink
Author(s): Lorenz Meier
autogenerated on Sun Jul 7 2019 03:22:07