![]() | LEGO Mindstorms EV3 |
Shared Memory
It is possible to get a pointer to the raw analogue values for use in userspace this pointer will point to a struct and the layout is following:
*/
typedef struct
{
DATA16 InPin1[INPUTS]; //!< Analog value at input port connection 1
DATA16 InPin6[INPUTS]; //!< Analog value at input port connection 6
DATA16 OutPin5[OUTPUTS]; //!< Analog value at output port connection 5
DATA16 BatteryTemp; //!< Battery temperature
DATA16 MotorCurrent; //!< Current flowing to motors
DATA16 BatteryCurrent; //!< Current flowing from the battery
DATA16 Cell123456; //!< Voltage at battery cell 1, 2, 3,4, 5, and 6
#ifndef DISABLE_FAST_DATALOG_BUFFER
DATA16 Pin1[INPUTS][DEVICE_LOGBUF_SIZE]; //!< Raw value from analog device
DATA16 Pin6[INPUTS][DEVICE_LOGBUF_SIZE]; //!< Raw value from analog device
UWORD Actual[INPUTS];
UWORD LogIn[INPUTS];
UWORD LogOut[INPUTS];
#endif
#ifndef DISABLE_OLD_COLOR
COLORSTRUCT NxtCol[INPUTS];
#endif
DATA16 OutPin5Low[OUTPUTS]; //!< Analog value at output port connection 5 when connection 6 is low
DATA8 Updated[INPUTS];
DATA8 InDcm[INPUTS]; //!< Input port device types
DATA8 InConn[INPUTS];
DATA8 OutDcm[OUTPUTS]; //!< Output port device types
DATA8 OutConn[OUTPUTS];
#ifndef DISABLE_PREEMPTED_VM
UWORD PreemptMilliSeconds;
#endif
}
ANALOG;
/* \n
Map physical ADC channels to logical channels in shared memory
The mapping is done by following array of physical channels
*
*/
static const UBYTE InputReadMap[INPUTADC] = { 6,8,10,12,5,7,9,11,1,0,13,14,2,15,3,4 };
/*