MAVLink食用说明——arduino下位机

void loop() {
  // Check reception buffer
  decode_messages();
}


void decode_messages() {
  static mavlink_message_t message;
  static mavlink_status_t status;
  static mavlink_payload_t msgpayload;

  // Read all data available in serial port and parse the mavlink message
  while(Serial.available() > 0) {
          for(int i=0; i<16; i++){
                strip.setPixelColor(i, strip.Color(28, 28, 28));
            }
          strip.show();

    uint8_t serial_byte = Serial.read();

    

    if(mavlink_parse_char(MAVLINK_COMM_0, serial_byte, &message, &status)) {


      //Handle message
      switch(message.msgid) {
          //Blink when a HEARTBEAT is received
        case MAVLINK_MSG_ID_HEARTBEAT:
            while(Serial.available() > 0) {
              for(int i=0; i<16; i++){
                  strip.setPixelColor(i, strip.Color(28, 128, 28));
                }
              strip.show();
            }
            break;

        // Add new messages here
        case MAVLINK_MSG_ID_PayLoad:
          mavlink_msg_payload_decode(&message, &msgpayload);
         // if(Payloadmessage == "aaaa"){
          
          if(strcmp(msgpayload.s, "aaa") == 0){
                for(int i=0; i<16; i++){
                  strip.setPixelColor(i, strip.Color(200, 0, 0));
                }
              strip.show();
          }
          break;

        default:
            break;
      }
    }
  }
}

如何decode msg

 

posted @ 2025-03-07 15:38  mcwhirr  阅读(24)  评论(0)    收藏  举报