Multiwii Write Actuators Multiwii Write GPS navigation bar

Table of Contents

Multiwii Write Boxes

Writes box items to the auto-pilot. Each word in the input array is a bitmask of activation switches.

Library

QUARC Targets/Communications/Multiwii

MATLAB Command Line

Click to copy the following command line to the clipboard. Then paste it in the MATLAB Command Window:

qc_open_library('quarc_library/Communications/Multiwii')

Description

Multiwii Write Boxes

The Multiwii Write Boxes block uses the Multiwii protocol on the input stream to send a command to the aircraft to write the box items to the auto-pilot. The Multiwii Write Boxes block sends a MSP_SET_BOX message to the auto-pilot.

This block is designed to be used with blocking I/O. It is typically used with a stream connected to a serial port. To open the stream a Multiwii Connect block should be used.

The input of the block is a fixed or variable-sized vector of uint16 bitmasks indicating the activation switches for each box. The bitmask contains the low, mid and high state of the AUX1, AUX2, AUX3 and AUX4 activation switches according to the following table:

Bit Description
0 AUX1 LOW state
1 AUX1 MID state
2 AUX1 HIGH state
3 AUX2 LOW state
4 AUX2 MID state
5 AUX2 HIGH state
6 AUX3 LOW state
7 AUX3 MID state
8 AUX3 HIGH state
9 AUX4 LOW state
10 AUX4 MID state
11 AUX4 HIGH state

A copy of the stream is also output so that the Multiwii blocks may be chained together.

If an error occurs, then the block returns a negative error code at its err output. The Compare to Error block may be used to check for specific error codes. If the stream is not valid because it is not yet connected, the err output will be zero since this condition is expected and the validity of the stream may be checked using the con output of the Multiwii Connect block.

Helpful Hints

Other uses of this block

Hint Although it is intended for use in the main diagram with the other Multiwii blocks, the Multiwii Write Boxes block may be used with the Advanced stream blocks, even in an asynchronous thread.

Input Ports

stm

A reference to the stream created by the Multiwii Connect block. If a connection has not yet been established, then the err output of the Multiwii Write Boxes block will be zero.

mask

A fixed or variable-sized vector containing uint16 bitmask values. The bits in the mask correspond to the LOW, MID and HIGH states of the AUX1, AUX2, AUX3 and AUX4 activation switches respectively.

Output Ports

stm

A reference to the stream. This output is merely a copy of the stm input. Providing this output makes it much easier to establish the execution order of Multiwii blocks in the diagram because Simulink generally executes daisy-chained blocks in sequence.

err

An int32 value indicating whether the message was sent successfully. This value will be positive if message was sent successfully. It will be zero if no message was sent. If an error occurs then this value is a negative error code. See Error Codes for the different error codes and their values. Use the Compare to Error block rather than the error code itself to check for specific error codes. To check for errors in general use the Compare to Zero block to check whether the err output is less than zero.

Parameters and Dialog Box

Multiwii Write Boxes

Write only when the input changes

Check this option to have the block only write new box items when the input changes. If this option is not checked then the block will write new box items every time it executes.

This option makes it easier to use the block, since it typically makes a

Triggered Subsystem

MATLAB Command Line

Click to copy the following command line to the clipboard. Then paste it in the MATLAB Command Window:

doc('simulink/triggeredsubsystem')
unnecessary when the option is checked.

Targets

Target Name

Compatible*

Model Referencing

Comments

QUARC Win32 Target

Yes

Yes

QUARC Win64 Target

Yes

Yes

QUARC Linux Nvidia Target

Yes

Yes

QUARC Linux QBot Platform Target

Yes

Yes

QUARC Linux QCar 2 Target

Yes

Yes

QUARC Linux QDrone 2 Target

Yes

Yes

QUARC Linux Raspberry Pi 3 Target

Yes

Yes

QUARC Linux Raspberry Pi 4 Target

Yes

Yes

QUARC Linux RT ARMv7 Target

Yes

Yes

QUARC Linux x64 Target

Yes

Yes

QUARC Linux DuoVero Target

Yes

Yes

QUARC Linux DuoVero 2016 Target

Yes

Yes

QUARC Linux Verdex Target

Yes

Yes

QUARC QNX x86 Target

Yes

Yes

Last fully supported in QUARC 2018.

Rapid Simulation (RSIM) Target

Yes

Yes

S-Function Target

No

N/A

Old technology. Use model referencing instead.

Normal simulation

Yes

Yes

* Compatible means that the block can be compiled for the target.

See Also

 

navigation bar