通信新技术综合训练报告 实验八 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 \
/****************************************************************************/ /*** 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
= =
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库通信新技术综合训练报告(8)在线全文阅读。
相关推荐: