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 */
							 |