MCSDataChannel Classes
Last updated
Last updated
The following classes extend MCSDataChannel, which is used to create a data channel instance mapping to the one created on the MCS server and provide operations on a data channel, including getting and uploading data points.
For example, an ON/OFF controller channel shown below:
This channel can be represented by an instance of the class MCSControllerOnOff, as shown below:
Data channel classes provide set() and value() methods for each data channel as they have different formats. Use the following extended classes in your sketch to create a specific type of data channels.
There are 2 major sub-class categories, controller channel and display channel. Controller channels, such as MCSControllerOnOff and MCSControllerInteger, represents controller channels on MCS. Display channels such as MCSDisplayFloat and MCSDisplayString maps to display channels instead.
MCSDataChannel()
Creates a data channel that can be added to a device that is an instance of MCSDevice or MCSLiteDevice.
Syntax
MCSControllerOnOff dataChannel(data_channel_ID)
MCSDisplayOnOff dataChannel(data_channel_ID)
MCSControllerCategory dataChannel(data_channel_ID)
MCSDisplayCategory dataChannel(data_channel_ID)
MCSControllerInteger dataChannel(data_channel_ID)
MCSDisplayInteger dataChannel(data_channel_ID)
MCSControllerFloat dataChannel(data_channel_ID)
MCSDisplayFloat dataChannel(data_channel_ID)
MCSControllerHex dataChannel(data_channel_ID)
MCSDisplayHex dataChannel(data_channel_ID)
MCSControllerString dataChannel(data_channel_ID)
MCSDisplayString dataChannel(data_channel_ID)
MCSControllerGPS dataChannel(data_channel_ID)
MCSDisplayGPS dataChannel(data_channel_ID)
MCSControllerGPIO dataChannel(data_channel_ID)
MCSDisplayGPIO dataChannel(data_channel_ID)
MCSControllerPWM dataChannel(data_channel_ID)
MCSDisplayPWM dataChannel(data_channel_ID)
MCSControllerAnalog dataChannel(data_channel_ID)
Parameters
data_channel_ID: The data channel id of the data channel you created on MCS.
Returns
dataChannel is an instance of the subclass of the MCSDataChannel class.
For each type of data channel:
updated()
valid()
value()
To check if there is updated data point received for a specified data channel. To check if channels are updated, users must call device.process() first, which checks if there any incoming command update from MCS server. If there are multiple updated values happened, only the last value will be kept.
Syntax
dataChannel.updated()
Parameters
none
Returns
boolean true if there is an updated data point received for this data channel, false if there isn't.
set()
To set the value to a specified display data channel.
Syntax
dataChannel.set(value)
MCSDisplayPWM.set(value, period)
MCSDisplayGPS.set(latitude, longitude, altitude)
Parameters
dataChannel: an instance of the MCSDataChannel extended classes, like MCSControllerOnOff, MCSControllerCategory...
MCSDisplayPWM: an instance of MCSDisplayPWM class
MCSDisplayGPS: an instance of MCSDisplayGPS class
value: the value you are going to set for a specified data channel and the data type of value is various according to data channel, like float, integer, long or string.
period: a specific integer parameter for PWM type of data channel. This period is the inverse of the PWM frequency.
latitude, longitude, altitude: specific float parameters for GPS type of data channel to present the GPS coordinate.
Returns
boolean true if the value is set and uploaded to MCS server successfully, false if it fails.
setServerValue()
To set the value to a specified display data channel.
Syntax
controllerChannel.setServerValue(value)
Parameters
dataChannel: an instance of the MCSDataChannel extended classes, like MCSControllerOnOff, MCSControllerCategory...
MCSControllerOnOff
bool
MCSControllerFloat
float
MCSControllerInteger
int
MCSControllerAnalog
int
MCSControllerGPIO
int
MCSControllerHex
long
MCSControllerCategory
String
MCSControllerString
String
MCSControllerPWM
MCSPWMValue
MCSControllerGPS
MCSGPSValue
latitude, longitude, altitude: specific float parameters for GPS type of data channel to present the GPS coordinate.
Returns
boolean true if the value is set and uploaded to MCS server successfully, false if it fails.
For PWM controller data channel, we provide
dutyCycle()
period()
To get the current dutyCycle(value) setting of a specified PWM controller data channel.
Syntax
MCSControllerPWM.dutyCycle()
Parameters
MCSControllerPWM: an instance of MCSControllerPWM class
Returns
The duty cycle setting of specified PWM controller data channel (labeled as "value" in MCS UI) and the data type is integer.
For GPS controller and GPS display data channel, we provide additional helper functions to parse the latitude, longitude and altitude fields.
latitude()
longitude()
altitude()
To get the current value of latitude of a specified GPS controller data channel.
Syntax
MCSControllerGPS.latitude()
Parameters
MCSControllerGPS: an instance of MCSControllerGPS class
Returns
The latitude of specified GPS controller data channel and the data type is float.
A Gamepad controller channel's value is an event with two fields:
which button(BTN_UP, BTN_DOWN, BTN_LEFT, BTN_RIGHT, BTN_A, BTN_B) is pressed or released.
The event is a BTN_PRESSED event or a BTN_RELEASED event.
The buttons are represented by the enumeration below:
and the events are represented by another enumeration:
So the object returned by the value() method can be read by accessing these two fields:
Following helper methods are also provided to easily access the button and event fields:
button()
event()