74 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			74 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /****************************************************************************
 | |
| 
 | |
| 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 HTBUS_PROTO_H
 | |
| #define HTBUS_PROTO_H
 | |
| 
 | |
| /* os shim includes */
 | |
| #include "os_types.h"
 | |
| 
 | |
| /* public api includes */
 | |
| #include "plc_fr.h"
 | |
| #include "plc_utils.h"
 | |
| 
 | |
| #ifdef __cplusplus
 | |
| extern "C" {
 | |
| #endif
 | |
| 
 | |
| /* TEI definitions */
 | |
| #define HTBUS_TEI_INVAL                 (0)
 | |
| #define HTBUS_TEI_CCO                   (1)
 | |
| #define HTBUS_TEI_FIRST                 (1)
 | |
| 
 | |
| /* #define number of nodes supported in the HTBUS network */
 | |
| #define HTBUS_NETWORK_SCALE             (2)
 | |
| 
 | |
| #define HTBUS_TEI_LAST                  (HTBUS_NETWORK_SCALE)
 | |
| 
 | |
| #define HTBUS_TEI_MAX_NUM               (HTBUS_TEI_LAST - HTBUS_TEI_FIRST + 1)
 | |
| #define HTBUS_TEI_BCAST                 (0xFF)
 | |
| #define HTBUS_TEI_IS_VALID(__tei) \
 | |
|     ((__tei) >= HTBUS_TEI_FIRST && (__tei) <= HTBUS_TEI_LAST)
 | |
| 
 | |
| #define HTBUS_TEI_BM_SIZE               iot_ceil(HTBUS_TEI_MAX_NUM, 8)
 | |
| 
 | |
| #pragma pack(push)  /* save the pack status */
 | |
| #pragma pack(1)     /* 1 byte align */
 | |
| 
 | |
| /* #define htbus service data unit function code */
 | |
| #define HTBUS_PROTO_FN_COMM_TEST        0xF
 | |
| 
 | |
| /* htbus service Data Unit header */
 | |
| typedef struct  {
 | |
|     /* destination tei, see HTBUS_TEI_XXX */
 | |
|     uint8_t  src_tei;
 | |
|     /* source tei, see HTBUS_TEI_XXX */
 | |
|     uint8_t  dst_tei;
 | |
|     /* seq number */
 | |
|     uint8_t  sn;
 | |
|     /* function code, see HTBUS_PROTO_FN_XXX */
 | |
|     uint16_t  fn         :4,
 | |
|     /* data len */
 | |
|               len        :12;
 | |
|     /* payload label */
 | |
|     uint8_t  data[0];
 | |
| } htbus_sdu_hdr_t;
 | |
| 
 | |
| #pragma pack(pop)   /* restore the pack status */
 | |
| 
 | |
| #ifdef __cplusplus
 | |
| }
 | |
| #endif
 | |
| 
 | |
| #endif /* HTBUS_PROTO_H */ |