久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

Z

 LongAnla 2015-10-20
   無線數(shù)據(jù)傳輸,,是指用無線信道替代有線連接進(jìn)行數(shù)據(jù)傳輸,。無線數(shù)據(jù)傳輸技術(shù)是當(dāng)代通信技術(shù)領(lǐng)域的一個(gè)重要分支,,近年來,,隨著科學(xué)技術(shù)的飛速發(fā)展,,特別是在全球信息技術(shù)及其產(chǎn)業(yè)化的推動下,,無線數(shù)據(jù)傳輸技術(shù)得到了迅猛的發(fā)展,。
透明數(shù)據(jù)傳輸是指:上位機(jī)與模塊進(jìn)行信息交換的數(shù)據(jù)格式,,沒有像指令字頭,、結(jié)束符等數(shù)據(jù)包信息,只要上位機(jī)串口有數(shù)據(jù)輸出,,模塊就把串口的數(shù)據(jù)以無線方式編碼發(fā)送,,當(dāng)接收模塊接收到發(fā)射模塊發(fā)送的無線數(shù)據(jù)信號后進(jìn)行解碼,,把解碼后的數(shù)據(jù)按發(fā)送端的格式從串口輸出。也就是說模塊對使用者是開放的,,透明的,,實(shí)際上,在點(diǎn)對多點(diǎn)的組網(wǎng)通信中,,我們完全可以將無線數(shù)據(jù)透明傳輸方式等同于有線連接的總線方式,。不同點(diǎn)是無線連接方式存在較大延時(shí)。
   無線數(shù)據(jù)透明傳輸系統(tǒng)是指設(shè)計(jì)具有RS232,、RS485等標(biāo)準(zhǔn)接口的無線數(shù)據(jù)透明傳輸模塊,,用該模塊替代串口連接線,多個(gè)模塊互相通過無線協(xié)議實(shí)現(xiàn)數(shù)據(jù)傳輸,,形成一個(gè)無線數(shù)據(jù)傳輸系統(tǒng),。
   在ZigBee無線數(shù)傳替代串口連接線。PC通過RS 232串行接口發(fā)送數(shù)據(jù)給ZigBee無線數(shù)傳模塊,,模塊接收數(shù)據(jù)后通過射頻收發(fā)器將數(shù)據(jù)轉(zhuǎn)發(fā)給另一端的ZigBee無線數(shù)傳模塊,,該模塊通過射頻收發(fā)器接收數(shù)據(jù)后直接發(fā)送到RS232串行接口供PC機(jī)接收。
#define SERIALAPP_MSG_RTRY_EVT       0x0001 //重發(fā)數(shù)據(jù)
#define SERIALAPP_RSP_RTRY_EVT       0x0002//重發(fā)響應(yīng)信息
#define SERIALAPP_MSG_SEND_EVT       0x0004 //發(fā)送數(shù)據(jù)

#define SERIALAPP_MAX_CLUSTERS       2
#define SERIALAPP_CLUSTERID1         1    //數(shù)據(jù)傳輸
#define SERIALAPP_CLUSTERID2         2    //接收數(shù)據(jù)響應(yīng)
將命令添加到命令列表
const cId_t SerialApp_ClusterList[SERIALAPP_MAX_CLUSTERS] =
{
  SERIALAPP_CLUSTERID1,
  SERIALAPP_CLUSTERID2
};
簡單描述符定義
const SimpleDescriptionFormat_t SerialApp_SimpleDesc =
{
  SERIALAPP_ENDPOINT,    //  int   Endpoint; 端口號
  SERIALAPP_PROFID,    //uint16 AppProfId[2]; Profile ID
  SERIALAPP_DEVICEID,   //  uint16 AppDeviceId[2]; 設(shè)備ID
  SERIALAPP_DEVICE_VERSION,  //  int   AppDevVer:4; 版本號
  SERIALAPP_FLAGS,        //  int   AppFlags:4; 程序標(biāo)識
  SERIALAPP_MAX_CLUSTERS,//byte AppNumInClusters; 輸入命令數(shù)
  //  byte *pAppInClusterList; 輸入命列表
(cId_t *)SerialApp_ClusterList, 
   SERIALAPP_MAX_CLUSTERS,   
//  byte *pAppOutClusterList; 輸出命令列表       
(cId_t *)SerialApp_ClusterList   };
//端口描述符
const endPointDesc_t SerialApp_epDesc =
{
  SERIALAPP_ENDPOINT,  //端口號
 &SerialApp_TaskID, //任務(wù)ID
  (SimpleDescriptionFormat_t *)&SerialApp_SimpleDesc, //簡單描述符
  noLatencyReqs
};
SerialApp的初始化函數(shù)
void SerialApp_Init( uint8 task_id )
{
  halUARTCfg_t uartConfig;  //串口配置信息
  SerialApp_MsgID = 0x00;
  SerialApp_SeqRx = 0xC3; //接收序列號
  SerialApp_TaskID = task_id;//任務(wù)ID
  SerialApp_DstAddr.endPoint = 0; //目的設(shè)端口
  SerialApp_DstAddr.addr.shortAddr = 0;//目的地址
  SerialApp_DstAddr.addrMode = (afAddrMode_t)AddrNotPresent;//目的地址模式
  SerialApp_RspDstAddr.endPoint = 0;
  SerialApp_RspDstAddr.addr.shortAddr = 0;
  SerialApp_RspDstAddr.addrMode = (afAddrMode_t)AddrNotPresent;
  afRegister( (endPointDesc_t *)&SerialApp_epDesc ); //注冊端口描述符
  RegisterForKeys( task_id ); //注冊按鍵事件
  uartConfig.configured    = TRUE;    // 2430 don't care.
  uartConfig.baudRate      = SERIAL_APP_BAUD; //波特率
  uartConfig.flowControl   = TRUE;     //流量控制
  uartConfig.flowControlThreshold = SERIAL_APP_THRESH; //流控閾值
  uartConfig.rx.maxBufSize = SERIAL_APP_RX_MAX; //最大接收量
  uartConfig.tx.maxBufSize = SERIAL_APP_TX_MAX; //最大發(fā)送量
  uartConfig.idleTimeout   = SERIAL_APP_IDLE;//2430 don't care.
  uartConfig.intEnable     = TRUE;   // 2430 don't care.
#if SERIAL_APP_LOOPBACK
  uartConfig.callBackFunc  = rxCB_Loopback; //接收回調(diào)函數(shù)
#else
  uartConfig.callBackFunc  = rxCB;
#endif
  HalUARTOpen (SERIAL_APP_PORT, &uartConfig); //打開串口
#if defined ( LCD_SUPPORTED )
  HalLcdWriteString( "SerialApp2", HAL_LCD_LINE_2 );
#endif
  //注冊綁定相關(guān)的事件
  ZDO_RegisterForZDOMsg( SerialApp_TaskID, End_Device_Bind_rsp );
  ZDO_RegisterForZDOMsg( SerialApp_TaskID, Match_Desc_rsp );
}
typedef struct
{
  bool                configured;
  uint8               baudRate; //波特率  協(xié)議棧只有38400和115200兩個(gè)波特率
//控制位,,如果是1的話就說明是四線模式,,0代表2線模式,默認(rèn)的是4線模式
  bool                flowControl;
  uint16              flowControlThreshold;
  uint8               idleTimeout;
  halUARTBufControl_t rx;
  halUARTBufControl_t tx;
  bool                intEnable;
  uint32              rxChRvdTime;
  halUARTCBack_t      callBackFunc;
}halUARTCfg_t;
說明:如果你的板子是采用2線模式的話,,必須得在SearilApp中的SerialWsn_Init( uint8 task_id )把uartConfig.flowControl=TURE改成FALSE

    本站是提供個(gè)人知識管理的網(wǎng)絡(luò)存儲空間,,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn),。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多