CodexPad Arduino 库 3.0.0
载入中...
搜索中...
未找到
CodexPad类 参考

CodexPad主类 更多...

#include <codex_pad.h>

Public 类型

enum class  TxPower : int8_t {
  kMinus16dBm = -16 , kMinus12dBm = -12 , kMinus8dBm = -8 , kMinus5dBm = -5 ,
  kMinus3dBm = -3 , kMinus1dBm = -1 , k0dBm = 0 , k1dBm = 1 ,
  k2dBm = 2 , k3dBm = 3 , k4dBm = 4 , k5dBm = 5 ,
  k6dBm = 6
}
 

Public 成员函数

 CodexPad () noexcept
 构造函数
 
 ~CodexPad () noexcept
 析构函数
 
void Init () noexcept
 初始化
 
bool Connect (const std::string &bluetooth_device_address, uint32_t timeout_ms=5000) noexcept
 连接
 
bool ScanAndConnect (gamepad::input::Button buttons) noexcept
 扫描附近的 CodexPad 设备,并自动连接到一个按键状态与指定掩码匹配的设备。
 
void Disconnect () noexcept
 断开连接
 
const gamepad::input::Tracker & Update () noexcept
 更新,需要在Loop中不断调用
 
bool is_connected () const noexcept
 是否连接
 
bool set_remote_tx_power (TxPower power) noexcept
 设置发射功率,连接状态下调用,立即生效于当前连接,下次连接生效
 
const std::string & remote_device_name () const noexcept
 获取CodexPad的型号
 
const std::string & remote_model_number () const noexcept
 获取CodexPad的型号
 
const std::array< uint8_t, 3 > & remote_firmware_version () const noexcept
 获取CodexPad的固件版本
 
const gamepad::input::Tracker & input_tracker () const noexcept
 获取输入跟踪器对象
 
NimBLEClient * ble_client () const noexcept
 获取 BLE 客户端对象
 

详细描述

CodexPad主类

示例
basic_polling.ino, inputs_detection.ino , 以及 scan_and_connect.ino.

在文件 codex_pad.h23 行定义.

成员枚举类型说明

◆ TxPower

enum class CodexPad::TxPower : int8_t
strong
枚举值
kMinus16dBm -16 

-16 dBm

kMinus12dBm -12 

-12 dBm

kMinus8dBm -8 

-8 dBm

kMinus5dBm -5 

-5 dBm

kMinus3dBm -3 

-3 dBm

kMinus1dBm -1 

-1 dBm

k0dBm 

0 dBm

k1dBm 

1 dBm

k2dBm 

2 dBm

k3dBm 

3 dBm

k4dBm 

4 dBm

k5dBm 

5 dBm

k6dBm 

6 dBm

在文件 codex_pad.h35 行定义.

构造及析构函数说明

◆ CodexPad()

CodexPad::CodexPad ( )
noexcept

构造函数

在文件 codex_pad.cpp26 行定义.

◆ ~CodexPad()

CodexPad::~CodexPad ( )
noexcept

析构函数

在文件 codex_pad.cpp28 行定义.

成员函数说明

◆ ble_client()

NimBLEClient * CodexPad::ble_client ( ) const
inlinenoexcept

获取 BLE 客户端对象

此函数返回内部 BLE 客户端对象的指针。调用者不应尝试释放/删除它。

返回
BLE 客户端对象
示例
basic_polling.ino, inputs_detection.ino , 以及 scan_and_connect.ino.

在文件 codex_pad.h383 行定义.

◆ Connect()

bool CodexPad::Connect ( const std::string & bluetooth_device_address,
uint32_t timeout_ms = 5000 )
noexcept

连接

参数
[in]bluetooth_device_addressCodexPad的蓝牙设备地址(BD_ADDR),格式为"XX:XX:XX:XX:XX:XX",X为数字或者大写字母, 半角冒号分隔
[in]timeout_ms超时时间,单位毫秒
返回值
true连接成功
false连接失败
示例
basic_polling.ino , 以及 inputs_detection.ino.

在文件 codex_pad.cpp36 行定义.

◆ Disconnect()

void CodexPad::Disconnect ( )
inlinenoexcept

断开连接

在文件 codex_pad.h277 行定义.

◆ Init()

void CodexPad::Init ( )
noexcept

初始化

在文件 codex_pad.cpp30 行定义.

◆ input_tracker()

const gamepad::input::Tracker & CodexPad::input_tracker ( ) const
inlinenoexcept

获取输入跟踪器对象

此函数返回内部输入跟踪器对象的引用。

返回
输入跟踪器对象

在文件 codex_pad.h368 行定义.

◆ is_connected()

bool CodexPad::is_connected ( ) const
noexcept

是否连接

返回值
true已连接
false未连接

在文件 codex_pad.cpp131 行定义.

◆ remote_device_name()

const std::string & CodexPad::remote_device_name ( ) const
inlinenoexcept

获取CodexPad的型号

返回
CodexPad的型号
示例
basic_polling.ino, inputs_detection.ino , 以及 scan_and_connect.ino.

在文件 codex_pad.h330 行定义.

◆ remote_firmware_version()

const std::array< uint8_t, 3 > & CodexPad::remote_firmware_version ( ) const
inlinenoexcept

获取CodexPad的固件版本

返回
CodexPad的固件版本
示例
basic_polling.ino, inputs_detection.ino , 以及 scan_and_connect.ino.

在文件 codex_pad.h354 行定义.

◆ remote_model_number()

const std::string & CodexPad::remote_model_number ( ) const
inlinenoexcept

获取CodexPad的型号

返回
CodexPad的型号
示例
basic_polling.ino, inputs_detection.ino , 以及 scan_and_connect.ino.

在文件 codex_pad.h342 行定义.

◆ ScanAndConnect()

bool CodexPad::ScanAndConnect ( gamepad::input::Button buttons)
noexcept

扫描附近的 CodexPad 设备,并自动连接到一个按键状态与指定掩码匹配的设备。

此方法会主动扫描蓝牙设备。当发现一个或多个 CodexPad 设备,其当前按键状态与提供的 button_mask 完全匹配时,它将尝试建立连接。 如果附近有多个设备都符合按键掩码,则会选择信号最强(RSSI 值最大)的设备进行连接。

参数
[in]button_mask用于匹配目标设备按键状态的32位按钮掩码。 使用 ButtonMask() 函数来组合多个 Button 枚举值。
返回值
true连接成功(找到了符合按键掩码的设备并成功连接)。
false连接失败(未找到匹配设备或连接尝试失败)。
注解
这是一个阻塞式调用。它会持续扫描,直到找到匹配的设备、连接建立或达到内部超时时间。
警告
**请勿**在按钮掩码中包含 Button::kHome。按住 Home 键会触发设备重启,这将中断连接过程。 示例:
pad.Init();
// 持续尝试连接到 Start 和 Cross/A 按键被同时按下的设备。
while (!pad.ScanAndConnect(gamepad::input::Button::kStart | gamepad::input::Button::kStart)) {
// 可选:在尝试之间添加短暂延时或其他操作。
delay(100);
}
// 循环退出,意味着连接成功。
Serial.println("CodexPad 连接成功!");
CodexPad() noexcept
构造函数
void Init() noexcept
初始化
bool ScanAndConnect(gamepad::input::Button buttons) noexcept
扫描附近的 CodexPad 设备,并自动连接到一个按键状态与指定掩码匹配的设备。
示例
scan_and_connect.ino.

在文件 codex_pad.cpp47 行定义.

◆ set_remote_tx_power()

bool CodexPad::set_remote_tx_power ( const CodexPad::TxPower tx_power)
noexcept

设置发射功率,连接状态下调用,立即生效于当前连接,下次连接生效

参数
[in]power发射功率
返回值
true成功
false失败
示例
basic_polling.ino, inputs_detection.ino , 以及 scan_and_connect.ino.

在文件 codex_pad.cpp133 行定义.

◆ Update()

const gamepad::input::Tracker & CodexPad::Update ( )
noexcept

更新,需要在Loop中不断调用

在文件 codex_pad.cpp106 行定义.


该类的文档由以下文件生成: