通信新技术综合训练报告(8)

2018-12-09 16:58

通信新技术综合训练报告 实验八 ADC及数据采集实验

PUBLIC bool_t JZA_boAppStart(void) {

JZS_vStartStack(); return TRUE; }

PUBLIC bool_t JZA_bAfKvpObject(APS_Addrmode_e eAddrMode, uint16 u16AddrSrc, uint8 u8SrcEP, uint8 u8LQI, uint8 u8DstEP, uint8 u8ClusterId,

uint8 *pu8ClusterIDRsp,

AF_Transaction_s *puTransactionInd, AF_Transaction_s *puTransactionRsp) { }

PUBLIC void JZA_vAfKvpResponse(

APS_Addrmode_e eAddrMode, uint16 u16AddrSrc, uint8 u8SrcEP, uint8 u8LQI, uint8 u8DstEP, uint8 u8ClusterID,

AF_Transaction_s *puTransactionInd) { }

// 数据接收处理函数

PUBLIC bool_t JZA_bAfMsgObject(

APS_Addrmode_e eAddrMode,//定义发送的目标地址模式

uint16 u16AddrSrc, //数据发送方的源短地址

uint8 u8SrcEP, //源端口号

uint8 u8LQI, //接收帧的链路质量 uint8 u8DstEP, //目标端口号 uint8 u8ClusterID, //cluster ID uint8 *pu8ClusterIDRsp, //应答cluster ID指针

36

return KVP_SUCCESS;

通信新技术综合训练报告 实验八 ADC及数据采集实验 AF_Transaction_s *puTransactionInd, AF_Transaction_s *puTransactionRsp) {

if ((eAddrMode == APS_ADDRMODE_SHORT) && (u8DstEP == WSN_DATA_SINK_ENDPOINT)) //目标模式为直接模式 ,目标端口为0x30 {

if(u8ClusterID == WSN_CID_SENSOR_READINGS) //应答指针为真 {

u16data=puTransactionInd->uFrame.sMsg.au8TransactionData[2]; // 保存数据高八位

u16data=(u16data<<8)|puTransactionInd->uFrame.sMsg.au8TransactionData[1]; // 保存数据底八位,并组合成16位数

if(puTransactionInd->uFrame.sMsg.au8TransactionData[0]==0) // 接收数据位 0 {

LED0 = !LED0;

vLedControl(0, LED0);

vPrintf(\写入温度 vPrintf(\度\写入度 vPrintf(\回车 换行 } else {

LED1 = !LED1;

vLedControl(1, LED1);

vPrintf(\写入电压值 vPrintf(\写入电压单位 vPrintf(\回车换行 } }

return 0; }

PUBLIC void JZA_vZdpResponse(uint8 u8Type, uint8 u8LQI, uint8 *pu8Payload, uint8 u8PayloadLen) { }

37

if(puTransactionInd->uFrame.sMsg.au8TransactionData[0]==1)

// 接收数据位1时,

}

通信新技术综合训练报告 实验八 ADC及数据采集实验 // 建网

PUBLIC void JZA_vStackEvent(teJZS_EventIdentifier eEventId, tuJZS_StackEvent *puStackEvent) {

if (eEventId == JZS_EVENT_NWK_STARTED)// 建网是否成功 {

bNwkStarted = TRUE;// 将标识置1 vLedControl(0, FALSE); // 熄灭LED0 vUART_printInit(); // 串口0初始化 }

if ((eEventId == JZS_EVENT_NEW_NODE_HAS_JOINED)&&(DstAddress==0)) // 节点是否加入 {

DstAddress

=

puStackEvent->sNewNodeEvent.u16ShortAddr; // 保存EndDevice16位短地址 vLedControl(1, FALSE); // 控制LED1灭 备描述 } }

// 简单设备描述

PRIVATE void vAddDesc() {

uint8 u8InputClusterCnt = 1;

uint8 au8InputClusterList[] = {WSN_CID_SENSOR_READINGS}; uint8 u8OutputClusterCnt = 1;

uint8 au8OutputClusterList[] = {WSN_CID_SENSOR_READINGS};

(void)afmeAddSimpleDesc(WSN_DATA_SINK_ENDPOINT,

WSN_PROFILE_ID, //end poin序号 0x0000, //设备ID 0x00,

0x00,

u8InputClusterCnt, //输入Cluster 数量 au8InputClusterList,//指向Cluster 数组指针 u8OutputClusterCnt, au8OutputClusterList); }

/****************************************************************************/ /*** END OF FILE ***/ /****************************************************************************/ 2.Router程序及注释:

38

vAddDesc(); //调用简单设

通信新技术综合训练报告 实验八 ADC及数据采集实验

/****************************************************************************/ /*** Include files ***/ /****************************************************************************/ #include \#include \#include \#include #include #include #include #include #include \#include \

#include \

/****************************************************************************/ /*** Macro Definitions ***/ /****************************************************************************/ #define HW_INT_Q_SIZE #define HW_INT_Q_PTR_MASK

#define APP_TICK_PERIOD_ms #define APP_TICK_SAMPLE_ms

32 0x1f 500 20

/****************************************************************************/ /*** Type Definitions ***/ /****************************************************************************/ typedef struct {

uint32 u32Device; uint32 u32ItemBitmap; } tsHwIntData;

typedef struct {

tsHwIntData asHwIntData[HW_INT_Q_SIZE]; volatile uint8 u8ReadPtr; volatile uint8 u8WritePtr; } tsHwEventQueue;

typedef enum {

//设置一些标志量

NVERTING,

39

E_STATE_READ_BATT_VOLT_IDLE, E_STATE_READ_BATT_VOLTS_ADC_CO

通信新技术综合训练报告 实验八 ADC及数据采集实验 TE,

E_STATE_READ_BATT_VOLTS_READY }teStateReadBattVolt;

typedef struct {

u16Reading;

}tsBattSensor;

uint16 teStateReadBattVolt eState;

E_STATE_READ_BATT_VOLTS_COMPLE

/****************************************************************************/ /*** Local Function Prototypes ***/ /****************************************************************************/ // 函数申明

PRIVATE void vInit(void);

PRIVATE void vAppTick(void *pvMsg, uint8 u8Param);

PRIVATE void vSendData(uint8 data0,uint16 data1); //发送数据 PRIVATE void vAddDesc(void); // 简单设备描述 PRIVATE void vAppTick(void *pvMsg, uint8 u8Param);

PRIVATE void vInitSensors(void); // ADC外围设置 PRIVATE void vReadBatteryVoltage(void); // 读取电压 PUBLIC uint8 itoa(uint16 n,char s[]); PUBLIC void reverse(char s[]); PRIVATE char data[6]=\

/****************************************************************************/ /*** Local Variables ***/ /****************************************************************************/ tsHwEventQueue sHwEventQueue;

PRIVATE bool_t bNwkJoined = FALSE; PRIVATE bool_t NextReadStart = TRUE ; PRIVATE tsBattSensor sBattSensor; PRIVATE uint8 num = 0;

PUBLIC void AppColdStart(void) // 函数入口, {

WSN_CHANNEL;

40

/* Set network information */ JZS_sConfig.u32Channel JZS_sConfig.u16PanId

= =


通信新技术综合训练报告(8).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:蒙脱土性质研究

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: