169 lines
		
	
	
		
			6.9 KiB
		
	
	
	
		
			C
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			169 lines
		
	
	
		
			6.9 KiB
		
	
	
	
		
			C
		
	
	
		
			Executable File
		
	
	
	
	
| /****************************************************************************
 | |
| 
 | |
| Copyright(c) 2019 by Aerospace C.Power (Chongqing) Microelectronics. ALL RIGHTS RESERVED.
 | |
| 
 | |
| This Information is proprietary to Aerospace C.Power (Chongqing) Microelectronics and MAY NOT
 | |
| be copied by any method or incorporated into another program without
 | |
| the express written consent of Aerospace C.Power. This Information or any portion
 | |
| thereof remains the property of Aerospace C.Power. The Information contained herein
 | |
| is believed to be accurate and Aerospace C.Power assumes no responsibility or
 | |
| liability for its use in any way and conveys no license or title under
 | |
| any patent or copyright and makes no representation or warranty that this
 | |
| Information is free from patent or copyright infringement.
 | |
| 
 | |
| ****************************************************************************/
 | |
| 
 | |
| #ifndef IOT_PLC_STA_API_H
 | |
| #define IOT_PLC_STA_API_H
 | |
| 
 | |
| #include "os_types_api.h"
 | |
| #include "iot_plc_api.h"
 | |
| #include "iot_pkt_api.h"
 | |
| #include "iot_plc_msg_sta_api.h"
 | |
| 
 | |
| #ifdef __cplusplus
 | |
| extern "C" {
 | |
| #endif
 | |
| 
 | |
| /**
 | |
|  * @brief iot_plc_tsfm_state_lock() - lock the state of transformer detect.
 | |
|  *
 | |
|  * @param handle:       plc application handler
 | |
|  */
 | |
| #define iot_plc_tsfm_state_lock(handle) \
 | |
|     iot_plc_tsfm_state_change(handle, IOT_PLC_API_REQ_ID_DEFAULT, \
 | |
|     IOT_PLC_TSFM_STATE_LOCK, NULL, 0, 0, NULL, NULL, 0)
 | |
| 
 | |
| /**
 | |
|  * @brief iot_plc_tsfm_state_unlock() - unlock the state of transformer detect.
 | |
|  *
 | |
|  * @param handle:       plc application handler
 | |
|  * @param unlock_delay: unlock delay time, unit is 1min.
 | |
|  */
 | |
| #define iot_plc_tsfm_state_unlock(handle, unlock_delay) \
 | |
|     iot_plc_tsfm_state_change(handle, IOT_PLC_API_REQ_ID_DEFAULT, \
 | |
|     IOT_PLC_TSFM_STATE_UNLOCK, NULL, 0, 0, NULL, NULL, unlock_delay)
 | |
| 
 | |
| /**
 | |
|  * @brief iot_plc_tsfm_set_tsfm_addr() - set transformer address info.
 | |
|  *
 | |
|  * @param handle:       plc application handler
 | |
|  * @param tsfm_addr:    transformer mac address
 | |
|  */
 | |
| #define iot_plc_tsfm_set_tsfm_addr(handle, tsfm_addr) \
 | |
|     iot_plc_tsfm_state_change(handle, IOT_PLC_API_REQ_ID_DEFAULT, \
 | |
|     IOT_PLC_TSFM_STATE_INVALID, tsfm_addr, 0, 0, NULL, NULL, 0)
 | |
| 
 | |
| /**
 | |
|  * @brief iot_plc_tsfm_set_tsfm_lock_time() - set transformer lock time.
 | |
|  * @param handle:       plc application handler
 | |
|  * @param net_lock_time: pointer to the net lock time.
 | |
|  * @param abn_lock_time: pointer to the lock time of abnormal leave net.
 | |
|  */
 | |
| #define iot_plc_tsfm_set_lock_time(handle, net_lock_time, abn_lock_time) \
 | |
|     iot_plc_tsfm_state_change(handle, IOT_PLC_API_REQ_ID_DEFAULT, \
 | |
|     IOT_PLC_TSFM_STATE_INVALID, NULL, 0, 0, net_lock_time, abn_lock_time, 0)
 | |
| 
 | |
| /**
 | |
|  * @brief iot_plc_set_discovery_mode() - enable/disable discovery mode. Note
 | |
|  *        that this function is only available when local STA not joined to
 | |
|  *        any network and in started status.
 | |
|  *
 | |
|  * @param handle:           plc application handler
 | |
|  * @param req_id:           request id, the request id will be transferred back
 | |
|  *                          to app in the report. app can define the mean of
 | |
|  *                          each id itself.
 | |
|  * @param enable:           0 - disable, otherwise - enable
 | |
|  */
 | |
| void iot_plc_set_discovery_mode(iot_plc_app_h handle, uint8_t req_id,
 | |
|     uint8_t enable);
 | |
| 
 | |
| /**
 | |
|  * @brief query transformer area detection status of local device.
 | |
|  *
 | |
|  * @param handle:           plc application handler
 | |
|  * @param req_id:           request id, the request id will be transferred back
 | |
|  *                          to app in the report. app can define the mean of
 | |
|  *                          each id itself.
 | |
|  */
 | |
| void iot_plc_query_tsfm_status(iot_plc_app_h handle, uint8_t req_id);
 | |
| 
 | |
| /**
 | |
|  * @brief iot_plc_ctrl_proto_connect() - connect the specified target device -
 | |
|  *        STA or CCO, this connection behavior is defined in the controller
 | |
|  *        protocol.
 | |
|  * @param handle:  - plc application handler
 | |
|  * @param req_id:  - request id, the request id will be transferred back
 | |
|  *                   to app in the report. app can define the mean of
 | |
|  *                   each id itself.
 | |
|  * @param addr:    - target device address to be connected, the byte order is
 | |
|  *                   Big-Endian.
 | |
|  */
 | |
| void iot_plc_ctrl_proto_connect(iot_plc_app_h handle, uint8_t req_id,
 | |
|     uint8_t *addr);
 | |
| 
 | |
| /**
 | |
|  * @brief iot_plc_set_scan_band_bitmap() - plc set band bitmap.
 | |
|  *
 | |
|  * @param handle:       plc application handler
 | |
|  * @param req_id:       request id, the request id will be transferred back to
 | |
|  *                      app in the report. app can define the mean of each id
 | |
|  *                      itself.
 | |
|  * @param band_bitmap:  set scan band bitmap.
 | |
|  *                      e: band_bitmap = b0000 0000 0000 0100
 | |
|  *                         -> enable band PLC_LIB_FREQ_BAND_2
 | |
|  * @param size:         size of scan bitmap,
 | |
|  *                      need equal to IOT_PLC_BAND_BITMAP_SIZE.
 | |
|  */
 | |
| void iot_plc_set_scan_band_bitmap(iot_plc_app_h handle, uint8_t req_id,
 | |
|     uint8_t *band_bitmap, uint32_t size);
 | |
| 
 | |
| /**
 | |
|  * @brief iot_plc_set_phase_mask() - plc set phase mask.
 | |
|  * @param handle:     plc application handler
 | |
|  * @param req_id:     request id, the request id will be transferred back to
 | |
|  *                    app in the report. app can define the mean of each id
 | |
|  *                    itself.
 | |
|  * @param phase_mask: phase to be masked off so that CCO won't be able to get
 | |
|  *                    corresponding phase zero crossing info, bit 0~2
 | |
|  *                    corresponds to phase 1/2/3.
 | |
|  */
 | |
| void iot_plc_set_phase_mask(iot_plc_app_h handle, uint8_t req_id,
 | |
|     uint8_t phase_mask);
 | |
| 
 | |
| /**
 | |
|  * @brief iot_plc_set_pkt_capture() - set the tei bitmap to be captured
 | |
|  *                    to capture application layer frames. only supports capture
 | |
|  *                    the packets matching destination tei.
 | |
|  * @param handle:     plc application handler
 | |
|  * @param req_id:     request id, the request id will be transferred back to
 | |
|  *                    app in the report. app can define the mean of each id
 | |
|  *                    itself.
 | |
|  * @param bm:         tei bitmap. if a bit is set, it means that corresponding
 | |
|  *                    tei is valid. bit0 has no meaning, bit1 means tei 1,
 | |
|  *                    bit 2 means tei 2.
 | |
|  * @param bm_len:     bitmap len
 | |
|  * @param enable:     enable capture.  0 - disable, 1 - enable.
 | |
|  */
 | |
| void iot_plc_set_pkt_capture(iot_plc_app_h handle, uint8_t req_id,
 | |
|     uint8_t *bm, uint16_t bm_len, uint8_t enable);
 | |
| 
 | |
| /**
 | |
|  * @brief iot_plc_set_pm_addr() - set the address of power meter connected
 | |
|  * @param handle:     plc application handler
 | |
|  * @param req_id:     request id, the request id will be transferred back to
 | |
|  *                    app in the report. app can define the mean of each id
 | |
|  *                    itself.
 | |
|  * @param addr_array:     mac address array of power meter connected, big-endian
 | |
|  * @param        cnt:     count of power meter connected, 0 means clear
 | |
|  *                        mac address of power meter connected
 | |
|  */
 | |
| void iot_plc_set_pm_addr(iot_plc_app_h handle, uint8_t req_id,
 | |
|     uint8_t *addr_array, uint8_t cnt);
 | |
| 
 | |
| #ifdef __cplusplus
 | |
| }
 | |
| #endif
 | |
| 
 | |
| #endif /* IOT_PLC_STA_API_H */
 |