| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- #ifndef __BREAKER_DETECTION_H__
- #define __BREAKER_DETECTION_H__
- #include "stdint.h"
- #define BREAKER_IO_BASE (96)
- #define BREAKER_IO_1 (BREAKER_IO_BASE+(16)) // 112 may use
- #define BREAKER_IO_2 (BREAKER_IO_BASE+(17)) // 113
- #define BREAKER_IO_3 (BREAKER_IO_BASE+(18)) // 114 may use
- #define BREAKER_IO_4 (BREAKER_IO_BASE+(19)) // 115
- #define BREAKER_485_CHN_MAX (6)
- enum{
- BREAKER_485_CHN1 = 1,
- BREAKER_485_CHN2,
- BREAKER_485_CHN3,
- BREAKER_485_CHN4,
- BREAKER_485_CHN5,
- BREAKER_485_CHN6,
- };
- #define BREADER_485_ADDR (64)
- #define BREADER_485_ADDR_CHN_REG (2200)
- #define BREAKER_BOARD_MAX (8)
- #define CHN1_ONLOINE (1)
- #define CHN2_ONLOINE (2)
- #define CHN3_ONLOINE (4)
- #define CHN4_ONLOINE (8)
- #define CHN5_ONLOINE (16)
- #define CHN6_ONLOINE (32)
- typedef struct breaker_scanner_info{
- uint16_t ch_status[BREAKER_485_CHN_MAX];
- }breaker_scanner_info_t;
- typedef struct breaker_scanner{
- uint8_t breaker_flag[BREAKER_BOARD_MAX];
- breaker_scanner_info_t board[BREAKER_BOARD_MAX]; // breaker addr start by 64
- }breaker_scanner_t;
- int breaker_init(int gpio);
- int breaker_deinit(int gpio);
- int breaker_read_status(int gpio);
- int breaker_485_get_chns(void* manger,int saddr,unsigned short* cnt);
- int breaker_485_get_chn_status(void* manger,int saddr,int channel,unsigned short *statue);
- int breaker_485_get_all_chn_status(void* manger,int saddr,unsigned short *status);
- void* breaker_scanner_thread(void* argv);
- breaker_scanner_t *get_breaker_scanner(void);
- #endif
|