Difference between revisions of "MansOS API"

From DiLab
Jump to: navigation, search
 
(31 intermediate revisions by one other user not shown)
Line 1: Line 1:
 +
{{TocRight}}
 
== LEDs ==
 
== LEDs ==
  
* toggleRedLed()
+
See [[MansOS LEDs | LED Reference]].
* toggleGreenLed()
 
* toggleBlueLed()
 
* toggleLed(ledNr)
 
  
* redLedOn()
+
== Humidity sensor ==
* greenLedOn()
+
See [[MansOS_Humidity | Humidity Reference]].
* blueLedOn()
 
  
* redLedOff()
+
== Light sensor ==
* greenLedOff()
+
mos/hil/light.h
* blueLedOff()
 
  
* ledOn(uint8_t ledNr)
+
void lightInit();      // init light sensor, do not turn it on  - called by kernel automatically, not needed in application
* ledOff(uint8_t ledNr)
+
void lightOn();        // turn on light sensor
* bool ledIsOn(ledNr)
+
void lightOff();      // turn off light sensor
 +
uint16_t readLight();  // read light value
  
* uint8_t getLeds()
+
uint16_t readTotalLight();  // read light
* setLeds(bitmap)
+
uint16_t readPARLight();  // read photo-syntetically active radiation value
  
 
== ADC ==
 
== ADC ==
* uint16_t adcRead(channel)
+
mos/hil/adc.h
* uint8_t adcGetChannelCount() - how many ADC channel the mote provides
+
 
 +
void adcOn();
 +
void adcOff();
 +
 
 +
uint16_t adcRead(uint8_t channel); // sets channel, reads value
 +
 
 +
// alternative faster version: set channel once, read multiple times (usable, if the same channel read many times)
 +
void adcSetChannel(uint8_t ch);
 +
uint16_t adcReadFast();
 +
 
 +
uint8_t adcGetChannelCount() // returns ADC channel count provided by the platform
 +
 
 +
== Radio ==
 +
 
 +
See [[MansOS_Radio | Radio Reference]].
  
 
== Sleep ==
 
== Sleep ==
 +
mos/hil/sleep.h
 +
 +
mleep(miliseconds)
  
* threadSleep(miliseconds)
 
  
 
== USART ==
 
== USART ==
 +
See mos/hil/usart.h for more details!
 +
 +
uint_t USARTInit(uint8_t id, uint32_t speed, uint8_t conf);
 +
 +
uint_t USARTSendByte(uint8_t id, uint8_t data);
 +
uint_t USARTSendString(uint8_t id, uint8_t *data);
 +
uint_t USARTSendStringLine(uint8_t id, uint8_t *data);
 +
void USARTSendData(uint8_t id, uint8_t *data, uint16_t len);
 +
 +
uint_t USARTEnableTX(uint8_t id);
 +
uint_t USARTDisableTX(uint8_t id);
 +
uint_t USARTEnableRX(uint8_t id);
 +
uint_t USARTDisableRX(uint8_t id);
 +
 +
/**
 +
* Set callback function for per-byte data receive. The callback is called
 +
* on every received packet
 +
* @param id - ID of the UART used (See MCU datasheet to get IDs)
 +
* @param cb - callback function: void myCallback(uint8_t byte)
 +
*/
 +
uint_t USARTSetReceiveHandle(uint8_t id, USARTCallback_t cb);
  
TODO
+
/**
 +
* Set callback for per-packet data receive. Stores the received bytes in
 +
* the buffer and the callback is called when either a newline is received
 +
* ('\n', binary value 10) or at most len bytes are received. The newline is
 +
* also stored in the buffer
 +
* Also enables USART RX automatically.
 +
* After the callback, buffer is reset and reception restarts.
 +
* Warning: Can use only one USART at a time (single buffer, single handler)!
 +
*
 +
* @param id - ID of the UART used (See MCU datasheet to get IDs)
 +
* @param cb - callback function: void myCallback(uint8_t bytes). Here the
 +
*            bytes parameter contains not the last byte received but
 +
*            total received byte count (i.e., bytes stored in the buffer)!
 +
* @param len - size of the buffer in bytes. Callback is called when len
 +
*              bytes are received (or when '\n' is received).
 +
*              When len is zero, no packet size is checked, only on newline
 +
*              reception the callback is called.
 +
*/
 +
uint_t USARTSetPacketReceiveHandle(uint8_t id, USARTCallback_t cb, void *buffer,
 +
        uint16_t len);

Latest revision as of 15:37, 15 October 2014

LEDs

See LED Reference.

Humidity sensor

See Humidity Reference.

Light sensor

mos/hil/light.h
void lightInit();      // init light sensor, do not turn it on  - called by kernel automatically, not needed in application 
void lightOn();        // turn on light sensor
void lightOff();       // turn off light sensor
uint16_t readLight();  // read light value
uint16_t readTotalLight();  // read light
uint16_t readPARLight();  // read photo-syntetically active radiation value

ADC

mos/hil/adc.h
void adcOn();
void adcOff();
uint16_t adcRead(uint8_t channel); // sets channel, reads value
// alternative faster version: set channel once, read multiple times (usable, if the same channel read many times)
void adcSetChannel(uint8_t ch);
uint16_t adcReadFast();
uint8_t adcGetChannelCount() // returns ADC channel count provided by the platform

Radio

See Radio Reference.

Sleep

mos/hil/sleep.h
mleep(miliseconds)


USART

See mos/hil/usart.h for more details!

uint_t USARTInit(uint8_t id, uint32_t speed, uint8_t conf);
uint_t USARTSendByte(uint8_t id, uint8_t data);
uint_t USARTSendString(uint8_t id, uint8_t *data);
uint_t USARTSendStringLine(uint8_t id, uint8_t *data);
void USARTSendData(uint8_t id, uint8_t *data, uint16_t len);
uint_t USARTEnableTX(uint8_t id);
uint_t USARTDisableTX(uint8_t id);
uint_t USARTEnableRX(uint8_t id);
uint_t USARTDisableRX(uint8_t id);
/**
* Set callback function for per-byte data receive. The callback is called
* on every received packet
* @param id - ID of the UART used (See MCU datasheet to get IDs)
* @param cb - callback function: void myCallback(uint8_t byte)
*/
uint_t USARTSetReceiveHandle(uint8_t id, USARTCallback_t cb);
/**
* Set callback for per-packet data receive. Stores the received bytes in
* the buffer and the callback is called when either a newline is received
* ('\n', binary value 10) or at most len bytes are received. The newline is
* also stored in the buffer
* Also enables USART RX automatically.
* After the callback, buffer is reset and reception restarts.
* Warning: Can use only one USART at a time (single buffer, single handler)!
*
* @param id - ID of the UART used (See MCU datasheet to get IDs)
* @param cb - callback function: void myCallback(uint8_t bytes). Here the
*             bytes parameter contains not the last byte received but
*             total received byte count (i.e., bytes stored in the buffer)!
* @param len - size of the buffer in bytes. Callback is called when len
*              bytes are received (or when '\n' is received).
*              When len is zero, no packet size is checked, only on newline
*              reception the callback is called.
*/
uint_t USARTSetPacketReceiveHandle(uint8_t id, USARTCallback_t cb, void *buffer,
       uint16_t len);