SensorMaster Library
Jump to navigation
Jump to search
TABLE OF CONTENTS
sensormaster/main/EndNotify
sensormaster/main/FullSensorTable
sensormaster/main/ReadFromManyByType
sensormaster/main/ReadFromOneSensor
sensormaster/main/SensorTableByType
sensormaster/main/StartNotify
sensormaster/main/TotalSensors
sensormaster/main/WriteToOneSensor
sensormaster/main/EndNotify sensormaster/main/EndNotify
NAME
EndNotify -- Removes resources allocated by StartNotify().
SYNOPSIS
BOOL EndNotify(const APTR Trigger);
FUNCTION
This is the clean-up function to be called after StartNotify().
INPUTS
APTR Trigger : The APTR resulting from calling StartNotify()
RESULT
BOOL : Wheather it succeded or not.
EXAMPLE
See StartNotify() for a (somewhat) complete example.
NOTES
You must call EndNotify even on notifications that haven't been triggered.
BUGS
SEE ALSO
StartNotify(), libraries/sensormaster.h , libraries/hm_sensor.h
sensormaster/main/FullSensorTable sensormaster/main/FullSensorTable
NAME
FullSensorTable -- Return the full table of available sensors.
SYNOPSIS
uint32 FullSensorTable(void * const buffer, const uint32 length);
FUNCTION
INPUTS
buffer : pointer to an already allocated buffer to receive the buffer table.
length : size of the buffer above. This should be sized in according to what TotalSensors() return.
RESULT
uint32: The actual amount of data written to the buffer.
EXAMPLE
const size_t s_table_size = sizeof(Sensor) * TotalSensors();
buffer = AllocVecTags(s_table_size, TAG_DONE);
uint32 result = FullSensorTable(buffer, s_table_size);
[use it]
FreeVec(s_table_size);
NOTES
BUGS
SEE ALSO
TotalSensors(), libraries/sensormaster.h
sensormaster/main/ReadFromManyByType sensormaster/main/ReadFromManyByType
NAME
ReadFromManyByType -- Returns all readings for one kind of sensor (by unit of measure) only.
SYNOPSIS
uint32 ReadFromManyByType(const enum UnitOfMeasure Unit, struct FullSensorReading * const Buffer, const uint32 buffer_size);
FUNCTION
This function is intended for those clients that only care about monitoring ONE kind of measure, might it be fans, voltages or anything else currently supported.
INPUTS
Unit The unit of measure you want to know about: see libraries/hm_sensor.h for definitions.
Buffer A pre-allocated buffer to hold enough items. Note that this will be filled with FullSensorReading entries!
Buffer_size The size of said buffer.
RESULT
uint32: size of the actual buffer used.
EXAMPLE
NOTES
BUGS
SEE ALSO
ReadFromOneSensor(), SensorTableByType()
sensormaster/main/ReadFromOneSensor sensormaster/main/ReadFromOneSensor
NAME
ReadFromOneSensor -- Reads a sensor value (shocker!)
SYNOPSIS
BOOL ReadFromOneSensor(const uint32 index, SensorLevelType * const storage);
FUNCTION
Reads the value from one sensor.
INPUTS
index: which sensor to read. This index corresponds to the position of this sensor
in the table returned by TotalSensors(ANY_UNIT) or si_Index in the table returned
by SensorTableByType().
storage: pointer to a destination where to write the sensor value.
RESULT
BOOL: success. Returns TRUE if the read was successfull, FALSE if either 'index' is too large or said sensor is not readable.
EXAMPLE
NOTES
It's up to each sensor sub-library to read the value and possibly cache it.
Thus it's possible that a value has been cached according to the polling in
terval.
BUGS
SEE ALSO
sensormaster/main/SensorTableByType sensormaster/main/SensorTableByType
NAME
SensorTableByType -- Returns a table of all sensors by type.
SYNOPSIS
uint32 SensorTableByType(struct SensorIdent * buffer, const uint32 length, const enum UnitOfMeasure type);
FUNCTION
INPUTS
buffer: A properly allocated buffer for SensorIdent structures
length: the length of the buffer.
type: which type of sensor you want.
RESULT
uint32: the actual size of the buffer that was used (written to).
EXAMPLE
NOTES
BUGS
SEE ALSO
sensormaster/main/StartNotify sensormaster/main/StartNotify
NAME
StartNotify -- Register for notification on sensor level change.
SYNOPSIS
BOOL StartNotify(const uint32 sensor_number, const SensorLevelType level, enum SensorCondition condition, const struct MsgPort * const call_me_maybe, const uint32 userdata);
FUNCTION
Registers for a notification upon level change. This function *MUST* be paired with a corresponding call to EndNotify().
Internally, it allocates a full TriggerMessage on the caller's behalf, and sends it via PutMsg()
to the sensormaster notification process.
Once a notification is started, the caller must wait on the supplied Message Port.
Multiple notifications can be active at the same time; if this is the case,
to distinguish between different notifications, the caller can use the "token" parameter.
Once the caller receives the notification (via a properly filled-up TriggerMessage), it
must call EndNotify().
INPUTS
sensor_number: the number of sensor this trigger refers to. Sensors are numbered from 0
and found via FullSensorTable() (or SensorTableByType() ).
level: the level you want to trigger the sensor on. Remember to use values consistent with the type
of each sensor. Check for those in include/hm_sensor.h.
condition: to be paired with the above, one of SC_BELOW, SC_ABOVE, SC_EXACT.
SC_BELOW and SC_ABOVE respectively resolve to <= and >= .
Don't use SC_EXACT unless you really mean it.
call_me_maybe: message port to send the TriggerMessage back to.
userdata: can be anything the user-program wants to. It'll be put in the TriggerMessage
structure that'll be sent back to the message port, in the tm_UserData field.
RESULT
APTR : an opaque handle representing the trigger. To be passed to EndNotify() to deallocate
associated resources.
EXAMPLE
MsgPort * mport = (MsgPort*)IExec->AllocSysObjectTags(ASOT_PORT,
ASOPORT_AllocSig, TRUE,
ASOPORT_Action, PA_SIGNAL,
ASOPORT_Target, IExec->FindTask(NULL),
TAG_DONE);
APTR handle=nullptr;
handle = StartNotify(16, 300l, SC_BELOW, mport, 666);
if(handle != nullptr)
{
IExec->WaitPort(mport);
//Trigger arrived!!
EndNotify(handle);
}
NOTES
BUGS
SEE ALSO
EndNotify(), libraries/sensormaster.h , libraries/hm_sensor.h
sensormaster/main/TotalSensors sensormaster/main/TotalSensors
NAME
TotalSensors -- Returns total number of sensors.
SYNOPSIS
uint32 TotalSensors(const enum UnitOfMeasure unit);
FUNCTION
Returns the total number of sensors available in the system.
The unit of measure parameter can be used to filter out what kind you want.
INPUTS
Unit : which unit of measure the sensors belong to. You can supply ANY_UNIT(conveniently numbered 0)
to have the complete number.
RESULT
uint32 : the total number of sensor for the type supplied in "Unit" or all of them if ANY_UNIT was used.
EXAMPLE
NOTES
BUGS
Sheesh! My code is perfect!
SEE ALSO
SensorTableByType() , libraries/hm_sensor.h
sensormaster/main/WriteToOneSensor sensormaster/main/WriteToOneSensor
NAME
WriteToOneSensor -- Writes to one sensor. No surprise there.
SYNOPSIS
BOOL WriteToOneSensor(const uint32 index, const SensorLevelType value);
FUNCTION
Writes the supplied value to the sensor specified in 'index'.
INPUTS
index: index for the sensor to write, as seen in the full sensor table returned by FullSensorTable() or in SensorIdent->si_Index from SensorTableByType().
RESULT
BOOL: success. True if the sensor allows writing to it.
EXAMPLE
NOTES
BUGS
SEE ALSO
FullSensorTable(), SensorTableByType()