2 * Power Output (12V, 2A, Push/Pull) RPP API header file.
6 * @copyright Copyright (C) 2013, 2016 Czech Technical University in Prague
8 * @author Carlos Jenkins <carlos@jenkins.co.cr>
16 * MOUT module initialization.
18 * Call this method before using this module.
20 * This function is not thread safe. Do not call it from multiple threads.
22 * @return SUCCESS if initialization successful.\n
23 * FAILURE if module already initialized.
25 int8_t rpp_mout_init();
29 * Set the output of given pin to given value.
31 * The function is thread safe, unless compiled with -DRPP_THREADSAFE=0.
33 * This function will also verify if a faulty condition is detected. See return
34 * documentation below for details.
36 * @param[in] pin The pin number to set [1-6].
37 * @param[in] val The value to be set [HIGH|LOW].
39 * @return SUCCESS if pin could be set and verified.\n
40 * -1 if pin number is out of range.\n
41 * -2 if val is not HIGH or LOW.\n
42 * -3 if pin could not be set. With current implementation this should
44 * -4 if a fault is indicated by DIAG pin
46 int8_t rpp_mout_set(uint8_t pin, uint8_t val);
50 * Get the cached value of the given pin set by rpp_mout_set().
52 * The function is thread safe, unless compiled with -DRPP_THREADSAFE=0.
54 * This will not read the value on the pin. To confirm if the output is
55 * correctly set call rpp_mout_diag() and confirm SUCCESS.
57 * @param[in] pin The pin number to get cached value [1-6].
59 * @return HIGH or LOW cached from last rpp_mout_set() call for given pin.
60 * -1 if pin number is out of range.
62 int8_t rpp_mout_get(uint8_t pin);
66 * Reads the value on the given diagnostic pin.
68 * The function is thread safe, unless compiled with -DRPP_THREADSAFE=0.
70 * @param[in] pin The pin number to read [1-6].
72 * @return 0 the pin is low, i.e. fault detected,
73 * 1 the pin is high, i.e. normal operation,
74 * -RPP_EINVAL pin number out of range
76 int8_t rpp_mout_diag(uint8_t pin);
79 #endif /* __RPP_MOUT_H */