📄 jenie.h
字号:
/***************************************************************************** * * MODULE: jenie.h * * COMPONENT: Jenie.h,v * * VERSION: Jenie_Release_v1_RC3_041207 * * REVISION: 1.19 * * DATED: 2007/11/22 14:03:06 * * STATUS: Exp * * AUTHOR: * * DESCRIPTION: * * LAST MODIFIED BY: moz * $Modtime: $ * **************************************************************************** * * This software is owned by Jennic and/or its supplier and is protected * under applicable copyright laws. All rights are reserved. We grant You, * and any third parties, a license to use this software solely and * exclusively on Jennic products. You, and any third parties must reproduce * the copyright and warranty notice and any other legend of ownership on each * copy or partial copy of the software. * * THIS SOFTWARE IS PROVIDED "AS IS". JENNIC MAKES NO WARRANTIES, WHETHER * EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, * ACCURACY OR LACK OF NEGLIGENCE. JENNIC SHALL NOT, IN ANY CIRCUMSTANCES, * BE LIABLE FOR ANY DAMAGES, INCLUDING, BUT NOT LIMITED TO, SPECIAL, * INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR ANY REASON WHATSOEVER. * * Copyright Jennic Ltd 2005, 2006. All rights reserved * ****************************************************************************/#ifndef JENIE_H_INCLUDED#define JENIE_H_INCLUDED#if defined __cplusplusextern "C" {#endif/****************************************************************************//*** Include Files ***//****************************************************************************/#include <jendefs.h>#include <mac_sap.h>/****************************************************************************//*** Macro Definitions ***//****************************************************************************//* tx options */#define TXOPTION_ACKREQ 0x01#define TXOPTION_SECURE 0x02#define TXOPTION_BDCAST 0x04#define TXOPTION_SILENT 0x08/****************************************************************************//*** Type Definitions ***//****************************************************************************/typedef struct{ uint16 u16LogicalEntryNo; // Entry number (physical or logical) bool_t bEntryInUse; // If in use uint8 u8Status; // Status?? uint64 u64DestAddr; // Jenie dest address uint64 u64NextHopAddr; // Jenie next hop address}tsJenie_RtgInfo;typedef struct{ uint16 u16LogicalEntryNo; // Entry number (physical or logical) uint64 u64DestAddr; // Jenie dest address bool_t bRxOnIdle;}tsJenie_NgbrInfo;typedef struct{ uint32 u32register0; uint32 u32register1; uint32 u32register2; uint32 u32register3;}tsJenieSecKey;typedef enum{ E_JENIE_REG_SVC_RSP, E_JENIE_SVC_REQ_RSP, E_JENIE_POLL_CMPLT, E_JENIE_PACKET_SENT, E_JENIE_PACKET_FAILED, E_JENIE_NETWORK_UP, E_JENIE_CHILD_JOINED, E_JENIE_DATA, E_JENIE_DATA_TO_SERVICE, E_JENIE_DATA_ACK, E_JENIE_DATA_TO_SERVICE_ACK, E_JENIE_STACK_RESET, E_JENIE_CHILD_LEAVE}teEventType;typedef enum{ E_JENIE_COORDINATOR, E_JENIE_ROUTER, E_JENIE_END_DEVICE}teJenieDeviceType;typedef enum{ E_JENIE_SUCCESS, E_JENIE_DEFERRED, E_JENIE_ERR_UNKNOWN, E_JENIE_ERR_INVLD_PARAM, E_JENIE_ERR_STACK_RSRC, E_JENIE_ERR_STACK_BUSY}teJenieStatusCode;typedef enum{ E_JENIE_COMPONENT_JENIE, E_JENIE_COMPONENT_NETWORK, E_JENIE_COMPONENT_MAC, E_JENIE_COMPONENT_CHIP}teJenieComponent;typedef enum{ E_JENIE_POLL_NO_DATA, E_JENIE_POLL_DATA_READY, E_JENIE_POLL_TIMEOUT}teJeniePollStatus;typedef enum{ E_JENIE_RADIO_ON = 20, E_JENIE_RADIO_OFF = 21}teJenieRadioPower;/* Templates for messages passed up to application layer */typedef struct{ /* place holder */}tsRegSvcRsp;typedef struct{ uint64 u64SrcAddress; uint32 u32Services;}tsSvcReqRsp;typedef struct{ teJeniePollStatus ePollStatus;}tsPollCmplt;typedef struct{ /* place holder */}tsPacketSent;typedef struct{ /* place holder */}tsPacketFailed;typedef struct{ /* place holder */}tsStackReset;typedef struct{ uint64 u64SrcAddress;} tsChildJoined;typedef struct{ uint64 u64SrcAddress;} tsChildLeave;typedef struct{ uint64 u64ParentAddress;}tsNwkStartUp;typedef struct{ uint64 u64SrcAddress; /* Address of message source */ uint8 u8MsgFlags; /* Flags indicating security enabled etc */ uint16 u16Length; /* Length of data payload */ uint8 *pau8Data; /* Pointer to data payload */}tsData;typedef struct{ uint64 u64SrcAddress; /* Address of message source */ uint8 u8SrcService; /* Service on sending node */ uint8 u8DestService; /* Service on receiving node */ uint8 u8MsgFlags; /* Flags indicating security enabled etc */ uint16 u16Length; /* Length of data payload */ uint8 *pau8Data; /* Pointer to data payload */}tsDataToService;typedef struct{ uint64 u64SrcAddress;}tsDataAck;typedef struct{ uint64 u64SrcAddress;}tsDataToServiceAck;/****************************************************************************//*** Exported Functions ***//****************************************************************************//* Management Functions */PUBLIC teJenieStatusCode eJenie_Start(teJenieDeviceType eDevType);PUBLIC teJenieStatusCode eJenie_Leave(void);PUBLIC teJenieStatusCode eJenie_RegisterServices(uint32 u32Services);PUBLIC teJenieStatusCode eJenie_RequestServices(uint32 u32Services, bool_t bMatchAll);PUBLIC teJenieStatusCode eJenie_BindService(uint8 u8SrcService, uint64 u64DestAddr, uint8 u8DestService);PUBLIC teJenieStatusCode eJenie_UnBindService(uint8 u8SrcService, uint64 u64DestAddr, uint8 u8DestService);PUBLIC teJenieStatusCode eJenie_SetPermitJoin(bool_t bPermitJoin);PUBLIC bool_t bJenie_GetPermitJoin(void);PUBLIC teJenieStatusCode eJenie_GetRtgTblEntry(uint16 u16CurrentEntry,tsJenie_RtgInfo *psResult);PUBLIC teJenieStatusCode eJenie_GetNgbrTblEntry(uint16 u16CurrentEntry,tsJenie_NgbrInfo *psResult);/* Data Functions */PUBLIC teJenieStatusCode eJenie_SendData(uint64 u64DestAddr, uint8 *pau8Payload, uint16 u16Length, uint8 u8TxFlags);PUBLIC teJenieStatusCode eJenie_SendDataToBoundService(uint8 u8Service, uint8 *pu8Payload, uint16 u16Length, uint8 u8TxFlags);PUBLIC teJenieStatusCode eJenie_SetSecurityKey(tsJenieSecKey *pKey, uint64 u64Addr);PUBLIC teJenieStatusCode eJenie_PollParent(void);PUBLIC teJenieStatusCode eJenie_SetSleepPeriod(uint32 u32SleepPeriodMs);PUBLIC teJenieStatusCode eJenie_Sleep(bool_t bMemHold);PUBLIC teJenieStatusCode eJenie_RadioPower(int iPowerLevel, bool_t bHighPower);PUBLIC uint32 u32Jenie_GetVersion(teJenieComponent eComponent);/* Callbacks */PUBLIC void vJenie_CbConfigureNetwork(void);PUBLIC void vJenie_CbInit(bool_t bWarmStart);PUBLIC void vJenie_CbMain(void);PUBLIC void vJenie_CbStackMgmtEvent(teEventType eEventType, void *pvEventPrim);PUBLIC void vJenie_CbStackDataEvent(teEventType eEventType, void *pvEventPrim);PUBLIC void vJenie_CbHwEvent(uint32 u32DeviceId, uint32 u32ItemBitmap);/****************************************************************************//*** Exported Variables ***//****************************************************************************/extern PUBLIC uint32 gJenie_NetworkApplicationID;extern PUBLIC uint16 gJenie_PanID;extern PUBLIC uint8 gJenie_Channel;extern PUBLIC uint32 gJenie_ScanChannels;extern PUBLIC uint8 gJenie_MaxChildren;extern PUBLIC uint8 gJenie_MaxFailedPkts;extern PUBLIC uint8 gJenie_MaxBcastTTL;extern PUBLIC uint8 gJenie_RouterPingPeriod;extern PUBLIC uint8 gJenie_EndDevicePingInterval;extern PUBLIC uint32 gJenie_EndDeviceScanTimeout;extern PUBLIC uint32 gJenie_EndDeviceScanSleep;extern PUBLIC uint32 gJenie_EndDevicePollPeriod;extern PUBLIC bool_t gJenie_RecoverFromJpdm;#if defined __cplusplus}#endif#endif /* API_H_INCLUDED *//****************************************************************************//*** END OF FILE ***//****************************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -