亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? wdp_device.h

?? 非常全的nrf2401設計資料
?? H
字號:
/* Copyright (c) 2007 Nordic Semiconductor. All Rights Reserved.
 *
 * The information contained herein is property of Nordic Semiconductor ASA.
 * Terms and conditions of usage are described in detail in NORDIC
 * SEMICONDUCTOR STANDARD SOFTWARE LICENSE AGREEMENT. 
 *
 * Licensees are granted free, non-transferable use of the information. NO
 * WARRENTY of ANY KIND is provided. This heading must NOT be removed from
 * the file.
 *
 * $LastChangedRevision: 2290 $
 */  

/** @file
 *
 * Device application header file for the Wireless Desktop Protocol. 
 *
 * @author Lasse Olsen 
 *
 * @addtogroup nordic_protocol_wdp Wireless Desktop Protocol
 * @{
*/
 
#include "wdp_common.h"

#ifndef WDP_DEVICE_H__
#define WDP_DEVICE_H__

/** @name Device application functions */
//@{

/**
Initialization function for the Wireless Desktop Protocol (WDP). This function
must be called at least once before any of the remaining WDP functions may be used.

It is recommended that the timer interrupt service routine used by the WDP is not 
enabled until after the WDP is initialized.

@param dev_type specifies the device type. The possible arguemnt are:
@arg @c WDP_MOUSE 
@arg @c WDP_KEYBOARD 
@arg @c WDP_REMOTE 
*/
void wdp_device_init(wdp_dev_types_t dev_type);

/**
Function for sending a pairing request to the dongle 
using the global pairing address and channels defined by 
#WDP_PAIRING_ADDRESS and #WDP_PAIRING_CHANNELS, respectively. 

If a pairing response is received from the dongle the 
device will pair with the address returned in the pairing 
response payload from the dongle, thus the channel set and address 
used for data transmission will be updated.

@retval true if pairing succeeded.
@retval false if pairing failed.
*/
bool wdp_device_request_pairing(void); 

/**
Function for setting the device address. During pairing the device
address is automatically written, and this function is normally needed 
only to rewrite a previous received pairing address on power up. 

Note that the WDP must be in IDLE mode in order for this function to 
have any effect.

@param adr is a pointer to the 5 byte address.

@return
@retval false if failure due to the WDP not beeing in IDLE prior to function call.
@retval true if address successfully written.
 
@sa wdp_device_get_adr(), wdp_device_request_pairing()  
*/
void wdp_device_set_address(uint8_t *adr);

/**
Function for acquiring the number of channel switches needed during 
the previous transmission.

@sa fap_get_ch_switches()
*/
#define wdp_device_get_ch_switches() fap_get_ch_switches();

/**
Function for getting the result of the previous transmit operation. 

@sa fap_tx_success()
*/
#define wdp_device_tx_success() fap_tx_success()

/**
Function for reading out the device address. The device address is received and stored 
either during pairing or by using the function wdp_set_device_adr(). 
This function is typically used in order to read out the device address 
for EEPROM or Flash storage. 

@param a is a pointer to where the 5 byte address shall be written.

@sa wdp_device_set_address(), wdp_device_request_pairing()  
*/
#define wdp_device_get_adr(a) fap_get_address(FAP_DEVICE1, a)

/**
Function for starting transmission of data from device to host.

@param dst specifies the source address for the data to be transmitted.
Note that the first data byte (byte 0) is reserved for protocol commands 
and any data written to this byte will be ignored and overwritten by the protocol. 
The function will transmit a total of #WDP_DEVICE_PL_LENGTH number of bytes.

@param length specifies the number of bytes to be transmitted. The number of
bytes may not exceed #WDP_MAX_UL_PL_LENGTH.

@return Returns the transmission was started. 

@retval true if data were successfully provided to protocol for transmission.

@retval false if failure on starting transmission. This can be caused by the length
of the payload exceeding #fap_max_ul_pl_length bytes or any of the requirements for
fap_tx_data() not being fulfilled. 

@sa wdp_device_get_mode(), wdp_device_get_tries(), wdp_device_tx_success()

*/
bool wdp_device_send_data(uint8_t *dat, uint8_t length);

/**
Function for acquiring the number of transmit attempts needed during 
the previous transmission.

@sa fap_get_tries()
*/
#define wdp_device_get_tries() fap_get_tries()

/**
@sa fap_get_ch_offset().  
*/ 
#define wdp_device_get_ch_offset() fap_get_ch_offset()

/**
@sa fap_ch_sync_enable().  
*/ 
#define wdp_device_ch_sync_enable() fap_ch_sync_enable()

/**
@sa fap_ch_sync_disable().  
*/ 
#define wdp_device_ch_sync_disable() fap_ch_sync_disable()

/**
Function for processing WDP events. This function monitors WDP timing variables
and transmits a new "keep alive" message whenever necessary in order to maintain a 
continuous data link set up by wdp_connect(). This function only has to be called 
whenever a continues data link is activated.

@sa wdp_device_connect()
*/
void wdp_device_process_events(void); 

/**
Function for setting up a continuous data link between device and host.
This function may be useful in cases where it is crucial for
the host to distinguish between a "silent" device and a device that
for some reason has lost its radio connection to the host. After execution of 
this function, the device will start transmitting dummy "keep alive" 
messages periodically with an interval set up by #WDP_MOUSE_KA_INTERVAL,
#WDP_KEYBOARD_KA_INTERVAL or #WDP_REMOTE_KA_INTERVAL, dependent of the
device type. However, the interval will between each dummy package will be 
extended whenever a data package is sent by the application, thus these dummy 
messages will not be transmitted as long as the link is kept alive by actual 
user data. 
 
Note that the device power consumption will increase when this
continuous link is activated.  

@sa wdp_device_disconnect()
*/
void wdp_device_connect(void);

/**
Function for shutting down the continuous data link set up by 
wdp_connect().  

@sa wdp_device_connect()
*/
void wdp_device_disconnect(void);


/** Function for reading received downlink data from host. The host may piggyback 
a data payload on any acknowledge sent in return on a device to host transmission. 
This function can be used by the application to read this payload.

@param dst a pointer to where the received data shall be copied. 

@return
Returns the number of bytes received and copied do *dst. The destination should be
able to accomodate minimum #WDP_MAX_DL_PL_LENGTH bytes.

@sa wdp_device_send_data()

*/ 
bool wdp_device_get_downlink_data(uint8_t *dst, uint8_t *length);
 
/**
This function returns the status of the continuous 
link established by wdp_connect(). On failure of
transmitting a dummy "keep alive" message, the
protocol automatically goes to "disconnected"
and the continuous data transmission will be shut
down.   

@return 
@retval true if the device is connected.
@retval false if the device is disconnected. 
*/ 
bool wdp_device_connected(void);
//@}

#endif

/** @} */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
4438x亚洲最大成人网| 五月天激情综合网| 夜夜嗨av一区二区三区| 日韩国产高清在线| 国产精品系列在线播放| 91麻豆国产在线观看| 欧美日韩精品一区二区三区四区 | 亚洲chinese男男1069| 精品午夜久久福利影院| 色综合久久久久综合体桃花网| 日韩一级完整毛片| 国产精品久久看| 日韩不卡一区二区三区 | 亚洲图片激情小说| 日韩vs国产vs欧美| 成人免费毛片片v| 91精品黄色片免费大全| 国产精品久久久一本精品 | 日韩精品一区二区三区四区视频| 国产精品国产馆在线真实露脸| 亚洲国产视频一区| 东方aⅴ免费观看久久av| 欧美日韩视频第一区| 国产午夜一区二区三区| 亚洲第一福利视频在线| 国产大陆精品国产| 欧美一区二区三区视频免费播放| 中文字幕综合网| 九一九一国产精品| 欧美久久久一区| 国产精品久久久久久久久免费相片| 日本在线不卡视频| 91国内精品野花午夜精品| 国产喂奶挤奶一区二区三区| 日韩不卡一区二区三区 | 奇米色777欧美一区二区| 成人网男人的天堂| 欧美电视剧在线看免费| 亚洲午夜影视影院在线观看| 成人黄色大片在线观看| 久久综合色一综合色88| 五月天激情综合| 欧美午夜寂寞影院| 最新不卡av在线| 国产99精品国产| 欧美精品一区视频| 欧美a一区二区| 制服.丝袜.亚洲.中文.综合| 亚洲伦在线观看| 成人动漫中文字幕| 国产日韩欧美精品一区| 极品少妇xxxx精品少妇| 91精品久久久久久蜜臀| 亚洲国产精品尤物yw在线观看| 91小视频免费看| 中文字幕一区二区三区乱码在线| 国产大陆亚洲精品国产| 国产天堂亚洲国产碰碰| 黑人巨大精品欧美一区| 精品国产91洋老外米糕| 青青草国产成人av片免费| 777久久久精品| 奇米精品一区二区三区在线观看一| 欧美日韩国产一级二级| 天天综合色天天综合色h| 欧美日韩精品综合在线| 丝袜a∨在线一区二区三区不卡| 欧美在线一区二区三区| 亚洲永久免费av| 在线视频欧美区| 亚洲一级在线观看| 欧美日韩高清一区| 日本伊人精品一区二区三区观看方式| 欧美日韩精品一区二区在线播放| 亚洲国产成人av| 欧美高清性hdvideosex| 麻豆精品在线视频| 精品国内片67194| 国产精品自拍网站| 国产精品日韩成人| 99免费精品在线观看| 亚洲四区在线观看| 在线亚洲欧美专区二区| 婷婷激情综合网| 精品国产污网站| 国产91丝袜在线18| 亚洲图片你懂的| 欧美丝袜自拍制服另类| 日本三级韩国三级欧美三级| 26uuu精品一区二区| 国产.精品.日韩.另类.中文.在线.播放| 国产精品免费观看视频| 91浏览器在线视频| 日韩黄色小视频| 久久―日本道色综合久久 | 亚洲综合免费观看高清完整版在线| 欧美在线观看18| 美女视频一区二区三区| 欧美精品一区二区三区蜜臀 | 亚洲精品伦理在线| 91精品免费在线| 国产成人av一区二区三区在线观看| 亚洲欧美一区二区视频| 欧美性受极品xxxx喷水| 久久精品99国产精品| 欧美韩日一区二区三区| 欧美日韩中文字幕一区| 激情综合五月天| 国产精品不卡在线| 91精品国产综合久久久久久久久久| 精品一区二区三区欧美| 亚洲欧美一区二区三区极速播放 | 久久精品免费观看| 国产精品嫩草影院com| 欧美无砖专区一中文字| 九九九久久久精品| 亚洲欧美日韩综合aⅴ视频| 欧美精品乱码久久久久久| 国产自产视频一区二区三区| 亚洲激情网站免费观看| 日韩你懂的在线播放| 色系网站成人免费| 精品制服美女丁香| 亚洲乱码国产乱码精品精的特点| 日韩午夜三级在线| 色综合中文字幕国产| 美女在线视频一区| 亚洲欧洲中文日韩久久av乱码| 欧美电视剧在线观看完整版| 色婷婷亚洲综合| 国内久久精品视频| 午夜精品久久久久久久蜜桃app| 久久久91精品国产一区二区精品| 欧美亚洲高清一区二区三区不卡| 九九国产精品视频| 亚洲国产综合91精品麻豆| 国产欧美久久久精品影院| 欧美一区二区日韩| 日本久久一区二区| 国产激情一区二区三区| 日韩中文字幕不卡| 亚洲蜜桃精久久久久久久| 26uuu欧美| 欧美一区二区视频免费观看| 色综合视频在线观看| 懂色av一区二区三区免费观看| 老汉av免费一区二区三区| 亚洲成人www| 亚洲色图视频网| 国产精品免费免费| 精品国产91久久久久久久妲己| 欧美精品一级二级三级| 91麻豆.com| av成人动漫在线观看| 国产乱码精品一品二品| 免费成人在线播放| 天天av天天翘天天综合网| 亚洲另类色综合网站| 国产精品嫩草99a| 久久久久9999亚洲精品| 精品国产免费视频| 日韩一级高清毛片| 777xxx欧美| 91麻豆精品国产无毒不卡在线观看| 91精彩视频在线| 色欧美片视频在线观看在线视频| caoporn国产一区二区| 风间由美一区二区三区在线观看 | 久久综合中文字幕| 欧美va亚洲va| 日韩精品中文字幕在线一区| 欧美一区二区大片| 91精品欧美久久久久久动漫| 51久久夜色精品国产麻豆| 欧美日韩成人激情| 777亚洲妇女| 日韩一区二区在线观看视频| 91精品久久久久久久久99蜜臂| 欧美人伦禁忌dvd放荡欲情| 欧美日韩一卡二卡| 欧美日产在线观看| 欧美精品在线视频| 日韩一级免费观看| 精品1区2区在线观看| 久久噜噜亚洲综合| 国产精品欧美综合在线| 亚洲欧洲www| 伊人婷婷欧美激情| 亚洲sss视频在线视频| 日韩av一区二区三区| 蜜桃久久精品一区二区| 国产一区中文字幕| 高清av一区二区| 色婷婷久久99综合精品jk白丝| 在线精品视频小说1| 欧美日韩成人高清| 精品国产免费一区二区三区四区| 国产视频一区不卡| 中文字幕日本不卡| 亚洲韩国精品一区|