Álvaro de Rada / X_NUCLEO_PLC01A1
Committer:
apalmieri
Date:
Fri Feb 19 10:56:30 2016 +0000
Revision:
0:b66a560b6618
Child:
2:1ec0dea195f8
Library to handle the X-NUCLEO-PLC01A1 Programmable Logic Controller Expansion Board.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
apalmieri 0:b66a560b6618 1 /**
apalmieri 0:b66a560b6618 2 ******************************************************************************
apalmieri 0:b66a560b6618 3 * @file plc.h
apalmieri 0:b66a560b6618 4 * @author System Lab Noida
apalmieri 0:b66a560b6618 5 * @version V1.0.0
apalmieri 0:b66a560b6618 6 * @date 08-July-2015
apalmieri 0:b66a560b6618 7 * @brief This header file contains the functions prototypes for the
apalmieri 0:b66a560b6618 8 * plc driver.
apalmieri 0:b66a560b6618 9 ******************************************************************************
apalmieri 0:b66a560b6618 10 * @attention
apalmieri 0:b66a560b6618 11 *
apalmieri 0:b66a560b6618 12 * <h2><center>&copy; COPYRIGHT(c) 2015 STMicroelectronics</center></h2>
apalmieri 0:b66a560b6618 13 *
apalmieri 0:b66a560b6618 14 * Redistribution and use in source and binary forms, with or without modification,
apalmieri 0:b66a560b6618 15 * are permitted provided that the following conditions are met:
apalmieri 0:b66a560b6618 16 * 1. Redistributions of source code must retain the above copyright notice,
apalmieri 0:b66a560b6618 17 * this list of conditions and the following disclaimer.
apalmieri 0:b66a560b6618 18 * 2. Redistributions in binary form must reproduce the above copyright notice,
apalmieri 0:b66a560b6618 19 * this list of conditions and the following disclaimer in the documentation
apalmieri 0:b66a560b6618 20 * and/or other materials provided with the distribution.
apalmieri 0:b66a560b6618 21 * 3. Neither the name of STMicroelectronics nor the names of its contributors
apalmieri 0:b66a560b6618 22 * may be used to endorse or promote products derived from this software
apalmieri 0:b66a560b6618 23 * without specific prior written permission.
apalmieri 0:b66a560b6618 24 *
apalmieri 0:b66a560b6618 25 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
apalmieri 0:b66a560b6618 26 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
apalmieri 0:b66a560b6618 27 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
apalmieri 0:b66a560b6618 28 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
apalmieri 0:b66a560b6618 29 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
apalmieri 0:b66a560b6618 30 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
apalmieri 0:b66a560b6618 31 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
apalmieri 0:b66a560b6618 32 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
apalmieri 0:b66a560b6618 33 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
apalmieri 0:b66a560b6618 34 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
apalmieri 0:b66a560b6618 35 *
apalmieri 0:b66a560b6618 36 ******************************************************************************
apalmieri 0:b66a560b6618 37 */
apalmieri 0:b66a560b6618 38
apalmieri 0:b66a560b6618 39
apalmieri 0:b66a560b6618 40 /* Define to prevent recursive inclusion -------------------------------------*/
apalmieri 0:b66a560b6618 41 #ifndef __PLC_H
apalmieri 0:b66a560b6618 42 #define __PLC_H
apalmieri 0:b66a560b6618 43
apalmieri 0:b66a560b6618 44 #ifdef __cplusplus
apalmieri 0:b66a560b6618 45 extern "C" {
apalmieri 0:b66a560b6618 46 #endif
apalmieri 0:b66a560b6618 47
apalmieri 0:b66a560b6618 48 /* Includes ------------------------------------------------------------------*/
apalmieri 0:b66a560b6618 49 #include <stdint.h>
apalmieri 0:b66a560b6618 50
apalmieri 0:b66a560b6618 51 /** @addtogroup BSP
apalmieri 0:b66a560b6618 52 * @{
apalmieri 0:b66a560b6618 53 */
apalmieri 0:b66a560b6618 54
apalmieri 0:b66a560b6618 55 /** @addtogroup Components
apalmieri 0:b66a560b6618 56 * @{
apalmieri 0:b66a560b6618 57 */
apalmieri 0:b66a560b6618 58
apalmieri 0:b66a560b6618 59 /** @addtogroup PLC
apalmieri 0:b66a560b6618 60 * @{
apalmieri 0:b66a560b6618 61 */
apalmieri 0:b66a560b6618 62
apalmieri 0:b66a560b6618 63 /** @defgroup PLC_Exported_Constants
apalmieri 0:b66a560b6618 64 * @{
apalmieri 0:b66a560b6618 65 */
apalmieri 0:b66a560b6618 66 #define MAX_NUMBER_OF_PLC_INPUT_COMPONENTS 1
apalmieri 0:b66a560b6618 67 #define MAX_NUMBER_OF_PLC_OUTPUT_COMPONENTS 1
apalmieri 0:b66a560b6618 68
apalmieri 0:b66a560b6618 69 #define NB_BYTES 2
apalmieri 0:b66a560b6618 70 #define BUFFERSIZE 1
apalmieri 0:b66a560b6618 71
apalmieri 0:b66a560b6618 72 /** @defgroup PLC_Exported_Types
apalmieri 0:b66a560b6618 73 * @{
apalmieri 0:b66a560b6618 74 */
apalmieri 0:b66a560b6618 75
apalmieri 0:b66a560b6618 76 /** @defgroup PLC_Exported_variables plc Exported variables
apalmieri 0:b66a560b6618 77 * @{
apalmieri 0:b66a560b6618 78 * @brief Exported variables
apalmieri 0:b66a560b6618 79 */
apalmieri 0:b66a560b6618 80
apalmieri 0:b66a560b6618 81 /**
apalmieri 0:b66a560b6618 82 * @brief Component's Status enumerator definition.
apalmieri 0:b66a560b6618 83 */
apalmieri 0:b66a560b6618 84 typedef enum
apalmieri 0:b66a560b6618 85 {
apalmieri 0:b66a560b6618 86 COMPONENT_OK = 0,
apalmieri 0:b66a560b6618 87 COMPONENT_ERROR,
apalmieri 0:b66a560b6618 88 COMPONENT_TIMEOUT,
apalmieri 0:b66a560b6618 89 COMPONENT_NOT_IMPLEMENTED
apalmieri 0:b66a560b6618 90 } DrvStatusTypeDef;
apalmieri 0:b66a560b6618 91
apalmieri 0:b66a560b6618 92 /**
apalmieri 0:b66a560b6618 93 * @brief SSRELAY driver structure definition
apalmieri 0:b66a560b6618 94 */
apalmieri 0:b66a560b6618 95 typedef struct
apalmieri 0:b66a560b6618 96 {
apalmieri 0:b66a560b6618 97 void (*SetChannels) (uint8_t Out_array);
apalmieri 0:b66a560b6618 98 uint8_t (*ManageFault)(void);
apalmieri 0:b66a560b6618 99 uint8_t (*CheckDCDCStatus)(void);
apalmieri 0:b66a560b6618 100 uint8_t (*TemperatureWarning)(void);
apalmieri 0:b66a560b6618 101 uint8_t (*CheckParity)(void);
apalmieri 0:b66a560b6618 102 uint8_t (*CheckPowerGood)(void);
apalmieri 0:b66a560b6618 103 uint8_t (*CheckCommError)(void);
apalmieri 0:b66a560b6618 104 void (*Ssrelay_SetOutput)(uint8_t *TxBuff, uint8_t *RxBuff);
apalmieri 0:b66a560b6618 105 } SSRELAY_DrvTypeDef;
apalmieri 0:b66a560b6618 106
apalmieri 0:b66a560b6618 107
apalmieri 0:b66a560b6618 108 /**
apalmieri 0:b66a560b6618 109 * @brief DIGITALINPUTARRAY driver structure definition
apalmieri 0:b66a560b6618 110 */
apalmieri 0:b66a560b6618 111 typedef struct
apalmieri 0:b66a560b6618 112 {
apalmieri 0:b66a560b6618 113 uint8_t (*GetReadStatus)(void);
apalmieri 0:b66a560b6618 114 void (*SetReadStatus)(uint8_t status);
apalmieri 0:b66a560b6618 115 uint8_t (*GetInputData)(void);
apalmieri 0:b66a560b6618 116 uint8_t (*OverTempAlarm)(void);
apalmieri 0:b66a560b6618 117 uint8_t (*CheckParity)(void);
apalmieri 0:b66a560b6618 118 uint8_t (*UnderVoltAlarm)(void);
apalmieri 0:b66a560b6618 119 void (*DigInpArray_GetInput)(uint8_t *TxBuff, uint8_t *RxBuff);
apalmieri 0:b66a560b6618 120 } DIGITALINPUTARRAY_DrvTypeDef;
apalmieri 0:b66a560b6618 121
apalmieri 0:b66a560b6618 122
apalmieri 0:b66a560b6618 123 /**
apalmieri 0:b66a560b6618 124 * @}
apalmieri 0:b66a560b6618 125 */
apalmieri 0:b66a560b6618 126
apalmieri 0:b66a560b6618 127 /**
apalmieri 0:b66a560b6618 128 * @}
apalmieri 0:b66a560b6618 129 */
apalmieri 0:b66a560b6618 130
apalmieri 0:b66a560b6618 131 /**
apalmieri 0:b66a560b6618 132 * @}
apalmieri 0:b66a560b6618 133 */
apalmieri 0:b66a560b6618 134
apalmieri 0:b66a560b6618 135 /**
apalmieri 0:b66a560b6618 136 * @}
apalmieri 0:b66a560b6618 137 */
apalmieri 0:b66a560b6618 138
apalmieri 0:b66a560b6618 139 #ifdef __cplusplus
apalmieri 0:b66a560b6618 140 }
apalmieri 0:b66a560b6618 141 #endif
apalmieri 0:b66a560b6618 142
apalmieri 0:b66a560b6618 143 #endif /* __PLC_H */
apalmieri 0:b66a560b6618 144 /**
apalmieri 0:b66a560b6618 145 * @} // end plc Exported Function
apalmieri 0:b66a560b6618 146 */
apalmieri 0:b66a560b6618 147 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/