BLE外围配置为一个中心

⚠️
大家好. .谢谢光临论坛。令人兴奋的消息!我们现在在移动的过程中,我们的新论坛平台,将提供更好的功能和包含在主对话框的网站。所有文章和帐户已经被迁移。我们现在只接受交通新论坛,请发布任何新的线程//www.xmece.com/support。我们将修复bug /优化搜索和标签在接下来的日子里。
26个新帖子/ 0
最后发表
前腿帕特尔
离线
最后看到:2年7个月前
加入:2017-03-29专机
BLE外围配置为一个中心

亲爱的Dialog_Support,

我用祝福为我的项目周边作为参考代码。BLE外围代码是做广告设备但我想配置它作为扫描设备(中央)。现在我做了以下改变现有的例子。
1。在user_config.h
静态常量struct gapm_configuration user_gapm_conf = {
/ / /设备角色:中央,外围,观察者或广播
.role = GAP_CENTRAL_MST,
struct scan_configuration {
/ / /操作的代码。
uint8_t代码;
/ / / BD地址源的设备
uint8_t addr_src;
/ / /扫描间隔
uint16_t间隔;
/ / /扫描窗口大小
uint16_t窗口;
/ / /扫描模式
uint8_t模式;
/ / /扫描过滤政策
uint8_t filt_policy;
/ / /扫描复制过滤政策
uint8_t filter_duplic;
};

静态常量struct scan_configuration user_scan_conf = {
/ / /操作的代码。
.code = GAPM_SCAN_PASSIVE,
/ / / BD地址源的设备
.addr_src = GAPM_PUBLIC_ADDR,
/ / /扫描间隔
.interval = 10,
/ / /扫描窗口大小
.window = 5,
/ / /扫描模式
.mode = GAP_GEN_DISCOVERY,
/ / /扫描过滤政策
.filt_policy = SCAN_ALLOW_ADV_ALL,
/ / /扫描复制过滤政策
.filter_duplic = SCAN_FILT_DUPLIC_EN
};

2。在user_callback_config.h
静态常量struct app_callbacks user_app_callbacks = {
.app_on_connection = user_app_connection,
.app_on_disconnect = user_app_disconnect,
.app_on_update_params_rejected =零,
.app_on_update_params_complete =零,
.app_on_set_dev_config_complete = default_app_on_set_dev_config_complete,
.app_on_adv_nonconn_complete =零,
.app_on_adv_undirect_complete = user_app_adv_undirect_complete,
.app_on_adv_direct_complete =零,
.app_on_db_init_complete = default_app_on_db_init_complete,
.app_on_scanning_completed = user_on_scanning_completed,
.app_on_adv_report_ind = user_on_adv_report_ind,
#如果(BLE_APP_SEC)
.app_on_pairing_request =零,
.app_on_tk_exch_nomitm =零,
.app_on_irk_exch =零,
.app_on_csrk_exch =零,
.app_on_ltk_exch =零,
.app_on_pairing_succeded =零,
.app_on_encrypt_ind =零,
.app_on_mitm_passcode_req =零,
.app_on_encrypt_req_ind =零,
.app_on_security_req_ind =零,
# endif / / (BLE_APP_SEC)
};

3所示。我在user_peripheral添加了这些函数。c文件
空白user_on_scanning_completed (uint8_t状态)
{
如果状态= = GAP_ERR_CANCELED)
{
app_easy_gap_start_connection_to ();
connection_timer = app_easy_timer (USER_CON_TIMEOUT user_gapm_cancel);
}
其他的
{
user_scan_start ();
}
返回;
}
静态孔隙user_scan_start(空白)
{
struct gapm_start_scan_cmd * cmd = KE_MSG_ALLOC (gapm_start_scan_cmd
TASK_GAPM TASK_APP,
gapm_start_scan_cmd);

cmd - > op。代码= user_scan_conf.code;
cmd - > op。addr_src = user_scan_conf.addr_src;
cmd - >间隔= user_scan_conf.interval;
cmd窗口- > = user_scan_conf.window;
cmd - >模式= user_scan_conf.mode;
cmd - > filt_policy = user_scan_conf.filt_policy;
cmd - > filter_duplic = user_scan_conf.filter_duplic;

/ /发送消息
ke_msg_send (cmd);

/ /我们现在接入
ke_state_set (TASK_APP APP_CONNECTABLE);
}

我试过这些上述变化,受人尊敬的文件但是我运行这个程序,它进入nmi_handler.c。
我错过了什么吗?或者我做错任何配置吗?请以适当的措施来引导我祝福外围配置为一个中心。

提前谢谢你。

与问候,
前腿帕特尔

关键词:
设备:
MT_dialog
离线
最后看到:3个月3周前
工作人员
加入:2015-06-08 34
嗨,前腿帕特尔

嗨,前腿帕特尔

当设备已经准备好开始(配置、设置和准备好了)广告或扫描命令来自.default_operation_adv,所以在钩你应该把任何你想当设备是准备好了。所以我认为,如果你在这钩user_start_scan()函数,而不是user_app_adv_start()你的设备将开始扫描过程。

由于MT_dialog

前腿帕特尔
离线
最后看到:2年7个月前
加入:2017-03-29专机
谢谢你的建议

谢谢你的建议。

我试过上述解决方案但我仍然得到相同的问题。当我运行这个程序,它进入nmi_handler.h。是上面的配置在user_config我做了。h, user_callback_config。h和user_peripheral。c文件是正确的吗?你能提供一个详细的解决方案或示例代码演示了中央的功能。

与问候,
前腿帕特尔

MT_dialog
离线
最后看到:3个月3周前
工作人员
加入:2015-06-08 34
嗨,前腿帕特尔

嗨,前腿帕特尔

检查与调试器如果user_scan_start()函数被触发,还要检查完成回调,如果它被触发了,什么是你的错误代码,如果其GAP_ERROR_TIMEOUT你得到它后8秒的活动,这意味着你扫描和敝中断触发当你到达完成回调的扫描过程。有关文件和你的代码已经粘贴它们,我不看到什么毛病的敝中断意味着代码保持,很长时间内被困在一个指令(它可以是主循环的注射用水()如果你有睡眠残疾人和没有祝福活动超过2.6秒的最长时间,监管机构可以测量)。问题就是一个例子,我假设您已经熟悉代码从主机端。

由于MT_dialog

前腿帕特尔
离线
最后看到:2年7个月前
加入:2017-03-29专机
你好MT_Dialog,

你好MT_Dialog,

谢谢你的回应。我现在能够连接ble_app_peripheral与我中心的设备。下一个任务就是从中央设备发送一个命令ble_app_peripheral切换了。我可以用定制概要文件特性从中央设备发送命令ble_app_peripheral我们从BLE扫描仪应用程序所做的吗?

与问候,
前腿帕特尔

MT_dialog
离线
最后看到:3个月3周前
工作人员
加入:2015-06-08 34
嗨,前腿帕特尔

嗨,前腿帕特尔

与定制的概要文件从中央交互,需要实现在中央方面,因为当设备连接中央应该开始发现过程以发现可用的服务和特点。后中央发现特征在外围方面,就可以开始编写和读取数据,因为中央的处理需要知道应该外围一边读或写。简言之,是的你可以写数据到自定义特征只要特点是可写的,但是你必须实现中央方面的发现过程,然后你可以写数据。需求方主机端实现了需求方发现流程配置文件,你可以作为参考。

由于MT_dialog

前腿帕特尔
离线
最后看到:2年7个月前
加入:2017-03-29专机
谢谢你的快

谢谢你的快速反应。

我需要实现自定义服务的发现过程和特点。我还没有找到明确的步骤对发现过程。我也经历了需求方的例子,但由于其复杂性,我不能正确地理解它。

1。请详细列出发现过程的步骤?
2。参照需求方,发现相关信息文件提到的?
3所示。哪些功能是有用的发现和特点定制服务?

与问候,
前腿帕特尔

MT_dialog
离线
最后看到:3个月3周前
工作人员
加入:2015-06-08 34
嗨,前腿帕特尔

嗨,前腿帕特尔

1。我不能提及的每一个细节发现过程在这个论坛上,您应该检查的BLE规范为了得到广泛的知识发现过程,我可以提几个关于这个过程的关键步骤,也给你一些代码片段在需求方的源代码。也是一个非常有用的文档将RW-BLE-GATT-IS。pdf文档包含所有命令/响应应该向和从堆栈为了完成这个发现过程。

  • 所以短短的话关于发现过程,它始于服务的发现,在所有的服务发现然后设备开始寻找可用的特征在每个服务描述符。
  • 对于dsp代码和实现:
    • 整个过程开始于设备连接,连接出现回调,需求方主机配置文件被启用,所以函数user_sps_enable()就是整个过程开始。
    • user_sps_enable()函数触发SPS_CLIENT_ENABLE_REQ消息,因此处理器sps_client_enable_req_handler()被触发。
    • 如果发现标志被启用,那么主机将(通过prf_disc_svc_send_128())的GATTC_DISC_CMD GATTC_DISC_BY_UUID_SVC参数,这个命令将发现的服务对应的UUID作为一个参数传递给消息并将回复GATTC_DISC_SVC_IND(一旦发现服务),尽快GATTC_CMP_EVT命令结束。
    • 所以关键功能的服务发现是相应的处理程序上面的消息(gattc_disc_svc_ind_handler()和gattc_cmp_evt_handler ())
    • gattc_cmp_evt_handler()是一个非常重要的功能,因为这是实现推动服务发现通过每个州(服务-特征描述符)。
    • 一个类似的过程是当设备从服务特点发现当然与相应的消息。
    • 上面所有的信息都包含在RW-BLE-GATT-IS。pdf格式,请花一些时间在学习文档。

由于MT_dialog

前腿帕特尔
离线
最后看到:2年7个月前
加入:2017-03-29专机
你好Dialog_Support,

你好Dialog_Support,

谢谢你的客户端配置步骤。我跟随你的脚步,但我得到错误。
1…\ src \ custom_profile \ user_custs_config.c(47):错误:# 29:将一个表达式
struct attm_desc_128 custs1_att_db [CUST1_IDX_NB] = {};

const struct cust_prf_func_callbacks cust_prf_funcs [] =
{
#如果(BLE_CUSTOM1_SERVER)
{TASK_CUSTS1,
custs1_att_db,
CUST1_IDX_NB,
#如果(BLE_APP_PRESENT)
app_custs1_create_db app_custs1_enable,
其他#
空,空,
# endif
custs1_init,零
},
# endif
#如果(BLE_CUSTOM2_SERVER)
{TASK_CUSTS2,
空,
0,
#如果(BLE_APP_PRESENT)
app_custs2_create_db app_custs2_enable,
其他#
空,空,
# endif
custs2_init,零
},
# endif
{TASK_NONE, NULL, 0,空,空,空,空},/ /不会移动。必须是最后一
};
我已经宣布在user_custs_config.c上面的函数
user_custs1_def。h作为
外面的struct attm_desc_128 custs1_att_db [CUST1_IDX_NB];

2。我应该怎么写,而不是#如果(BLE_SPS_CLIENT)

与问候,
前腿帕特尔

MT_dialog
离线
最后看到:3个月3周前
工作人员
加入:2015-06-08 34
嗨,前腿帕特尔

嗨,前腿帕特尔

1。很显然你已经放置在custs1需求方主机。h包括为了包括自定义配置文件,和你还没有宣布任何数据库,检查例如ble_app_peripheral例子和检查内部,数组。

2。我不得到第二个问题,这只是一个定义为包括客户机functionallity SPS。

由于MT_dialog

前腿帕特尔
离线
最后看到:2年7个月前
加入:2017-03-29专机
非常感谢你的

非常感谢你的步骤。它帮助我们很多。长时间之后,我能够发现服务和特色。现在我的下一个任务是客户端和服务器之间的数据传输。你能告诉我自定义函数启动数据传输程序吗?

感谢和问候,
前腿帕特尔

MT_dialog
离线
最后看到:3个月3周前
工作人员
加入:2015-06-08 34
嗨,前腿帕特尔

嗨,前腿帕特尔

你的意思是,你想执行写从中央到边缘的特点?您可以使用prf_gatt_write()命令的dsp实现例子,当然这个函数发送一个特定消息向堆栈GATTC_WRITE_CMD,,你将能够找到额外的信息在这个RW-BLE-GATT-IS。pdf支持网站。

由于MT_dialog

前腿帕特尔
离线
最后看到:2年7个月前
加入:2017-03-29专机
是的,我想要写的数据

嗨MT_Dialog,

是的,我想写数据从中央到边缘的特点。
正如你建议使用“prf_gatt_write()命令,我检查了需求方的例子。据我了解,有一个特定的处理程序名为“sps_client_data_tx_req_handler”,负责处理传输请求使用“prf_gatt_write()命令。处理程序应该调用,只要中央提出了一个写(tx)的数据请求。但是,我不懂如何调用tx_req_handler。如何做我叫一个内置的函数或编写自己的函数,这将调用“sps_client_data_tx_req_handler”?

感谢和问候,
前腿帕特尔

MT_dialog
离线
最后看到:3个月3周前
工作人员
加入:2015-06-08 34
嗨,前腿帕特尔

嗨,前腿帕特尔

的处理程序,您看到的是一个实现dsp参考应用程序,如果你想触发写作活动不直接调用一个函数调用,但通过发送消息和处理事件消息可以实现类似项目需求方。当需求方希望发送数据实现一个名叫SPS_CLIENT_DATA_TX_REQ的消息并将其发送给堆栈,然后处理堆栈一旦消息触发相应的处理程序,通过user_send_ble_data SPS_CLIENT_DATA_TX_REQ消息发送()函数,处理程序是由sps_client_task消息宣布。c文件sps_client_connected数组,你可以作为参考。

由于MT_dialog

前腿帕特尔
离线
最后看到:2年7个月前
加入:2017-03-29专机


嗨MT_dialog,

一开始我也认为用“user_send_ble_data()函数发送数据在祝福。这个函数需要的数据,data_length作为参数。然后将数据发送到预先确定的特点。但就我而言,我不想总是我的数据发送到一个固定的特点。

例如:
假设有一个名为“Cust_Service_1”的定制服务。内部服务,我有一些自定义特征如“LED_1_Brightness”,“LED_2_Brightness”等等,写不附加任何响应特性。
现在,我想发送0 x57“LED_1_Brightness”的特点。
我想到的是一个简单的函数接受以下参数:

uint8_t数据[1]= {0 x57};
uint8_t长度= 1;
空白my_function_to_send_data (Service_NameCust_Service_1,Charecteristic_NameLED_1_Brightness,Data_Value*数据,Data_Length长度);

自“user_send_ble_data()函数只接受数据和数据长度;如何确保我的数据被发送到正确的特征,我想要的吗?我应该附加额外的服务名称和特征参数的名字上面的例子所示?或者有其他方法先设置服务和外部特征的名字在一些变量,然后调用“user_send_ble_data()函数,以将数据发送到期望的特征?请帮我。

感谢和问候,
前腿帕特尔

MT_dialog
离线
最后看到:3个月3周前
工作人员
加入:2015-06-08 34
嗨,前腿帕特尔

嗨,前腿帕特尔

如上所述user_send_ble_data()函数使用的dsp、和它不是一个泛型函数来发送数据的任何特征上可用的服务。实际发送数据的处理程序是sps_client_data_tx_req_handler()和实际发送数据的函数是prf_gatt_write ()。因为这是实际发送数据的函数在另一边,这也是detrmines的功能特性的处理数据将发送。因此通过调用prf_gatt_write()和相应的处理参数将更新适当的特征值。对于需求方的特点处理总是用于sps_client_data_tx_req_handler spsc_env - > sps.chars SPSC_SRV_RX_DATA_CHAR .val_hdl。

由于MT_dialog

前腿帕特尔
离线
最后看到:2年7个月前
加入:2017-03-29专机
嗨MT_dialog,

嗨MT_dialog,

当你正确你先前的评论中提到的,sps_client_data_tx_req_handler ()是实际发送数据的功能。我想要一个简单的应用程序,用户按下一个按钮,它会触发一个中断例程。在中断例程,我想调用sps_client_data_tx_req_handler ()函数来发送一些数据。该函数需要以下参数:

静态int sps_client_data_tx_req_handler (ke_msg_id_t const是否,
struct sps_client_data_tx_req const *参数,
ke_task_id_t const dest_id,
ke_task_id_t const src_id)

但是,我不知道哪些传入每个参数,以便我的数据发送到一个特定的特征。你能给我更多的信息呢?

感谢和问候,
前腿帕特尔

MT_dialog
离线
最后看到:3个月3周前
工作人员
加入:2015-06-08 34
嗨,前腿帕特尔

嗨,前腿帕特尔

您可以添加额外的成员sps_client_data_tx_req结构并传递你想从这个成员的特点,所以当你分配一个sps_client_data_tx_req消息你也应该通过在请求你想执行的特点写,例如结构目前有三个成员(conhdl、长度和数据)填充时,消息被分配在发送之前,所以添加额外的成员举行的characteritsic想写。当sps_client_data_tx_req_handler()调用,而不是一个固定值的prf_gatt_write()的值可以通过你已经添加额外的成员在sps_client_data_tx_req结构。

由于MT_dialog

前腿帕特尔
离线
最后看到:2年7个月前
加入:2017-03-29专机
嗨MT_Dialog,

嗨MT_Dialog,

谢谢你的帮助。我成功写数据到一个特定的特征。我使用了一个稍微不同的方法的建议,但是由于它的工作,我不介意。这是什么我的程序的总结:

  1. 它连接到一个特定的地址中提到USER_ADVERTISE_DATA(dsp)一样
  2. 它使得客户端模式
  3. 然后发现服务,特点和他们的描述符
  4. 一旦这一切完成,程序等待用户按钮中断
  5. 当用户按下一个按钮,我们周边的亮度值发送到一个特定的特征prf_gatt_write函数
  6. 这个值是获得成功和LED的亮度也相应变化

因此,我现在可以发送数据从1保佑客户1保佑外围设备。请注意,他们总是在整个会话连接。

现在,只是最后一步留在我的项目。有1客户(我工作),还有4周边设备。我有4个不同的用户输入按钮,根据被按下的按钮,我想发送数据从我保佑客户特定保佑外围设备。这是我现在想要实现的示例流:

  1. 用户按下一个按钮(例如,按钮2)
  2. 我的祝福客户机应该连接具体地址的祝福周边2号
  3. 启用客户端模式(在之前的情况一样)
  4. 发现服务、特点及其描述符(在之前的情况一样)
  5. 然后,它应该周边的亮度值发送到一个特定的特征prf_gatt_write函数
  6. 这个值应该接收和LED亮度BLE Peripheral-2应该相应地改变
  7. 最后,客户机断开连接从外围,等待另一个按钮按下的事件

请注意,我不希望并发连接,我只需要连接到一个特定的设备,发送数据,然后断开连接。

我迫切需要实现这。所以我欣赏一个具体详细的解决方案。请帮. . ! !

提前谢谢,
前腿帕特尔

MT_dialog
离线
最后看到:3个月3周前
工作人员
加入:2015-06-08 34
嗨,前腿帕特尔

嗨,前腿帕特尔

你的用例非常具体,我不能够看到或文档每一个具体细节在这个论坛上,请检查下面我的建议。

为了通过一个中央连接到外围,外围需要广告(广告是必要的为了外围接受连接请求,不只是中央扫描设备),所以你要假设你的外围设备会发出连接请求,没有扫描程序,或你要扫描吗?我假设您要使用公共地址为您的设备,由于静态地址定义的规范,他们应该改变在每一个重启的外围设备和随机可解析需要结合分离设备。所以假设您使用的是公共地址,这些地址被中央称为据我所知,有两个选项:

1)假定设备已经有和没有扫描过程从中央,当按钮被按下可以发出一个连接通过app_easy_gap_start_connection_to_set()和app_easy_gap_start_connection_to()以启动连接程序,但是你要确保设备广告,如果不是连接过程没有时间出去,如果没有人回应你需要时间过程通过您的应用程序。一旦设备被连接了发现过程将开始和设备连接时将做它。一旦数据交换,那么你可以调用app_easy_gap_disconnect()以断开时从中央和周边发生diconnection禁用和清理剖面结构(取决于你如何实现你的定制概要文件)。断开请求可以通过外围或中央。

2)关于第二个选项,你可以按下按钮并存储在一个全局变量对应的bd地址,你想连接,因此当扫描程序返回特定地址回调迹象可以发出连接请求。除此之外,其余保持不变。

由于MT_dialog

前腿帕特尔
离线
最后看到:2年7个月前
加入:2017-03-29专机
嗨MT_dialog,

嗨MT_dialog,

我的最终目标是设计一个可编程BLE远程控制多种调光灯。所以远程控制最初仍在外围模式和与一个android应用程序,然后程序会告诉哪些按钮应该做哪些功能。BLE远程仍然只在外围模式。但当用户按下一个按钮,按钮1,它下面的:

  1. 它将切换的模式外围中央
  2. 它将连接与dimmer-1(因为按钮1按下)。Dimmer-1 BLE外围设备,已经在广告模式。
  3. 现在,远程控制发送一个新的dimmer-1亮度值
  4. 它将断开连接从dimmer-1
  5. 它将切换角色外围

我还没有想出如何在运行时角色转换。所以目前,我可编程BLE远程总是中部的模式。

调光按钮按下操作我的祝福遥远,我写了下面的代码:

bool gboolD1Connect = false;
空白user_button_pressed(空白)
{
gboolD1Connect = true;
/ / user_on_adv_report_ind (param - >报告。adv_addr_type: 0 x01);
如果(dimmer1_connected = = true) / /之后才会如此整个连接过程就完成了
{
uint8_t my_data [1];
my_data [0] = 0 x14;/ /亮度值
uint16_t my_length;
my_length = 1;
/ /这个函数从切换到调光器发送数据
prf_gatt_write (con_info val_hdl (uint8_t *) my_data, sizeof (uint8_t) * my_length GATTC_WRITE);
}
}


/ /这是内置的函数,我已经修改它连接到dimmer-1只有当gboolD1Connect是正确的
空白user_on_adv_report_ind (struct gapm_adv_report_ind const *参数)
{
如果(gboolD1Connect)
{
如果(! memcmp (param - >报告。数据[3]、USER_ADVERTISE_DATA USER_ADVERTISE_DATA_LEN))
{
arch_printf(“联系% 02 x % 02 x % 02 % 02 x % 02 x % 02”,
param - > report.adv_addr.addr [5],
param - > report.adv_addr.addr [4],
param - > report.adv_addr.addr [3],
param - > report.adv_addr.addr [2],
param - > report.adv_addr.addr [1],
param - > report.adv_addr.addr [0]);
app_easy_gap_start_connection_to_set (param - >报告。adv_addr_type (uint8_t *)参数- > report.adv_addr。addr, MS_TO_DOUBLESLOTS (12.5));
user_gapm_cancel ();
}
}
}

上面的实现可以工作,但是它有一个问题。当我按下按钮远程首次,它将gboolD1Connect因为真实,然后退出函数dimmer1_connected是不真实的。之后,在后台,当user_on_adv_report_ind ()运行时,它将与dimmer-1联系。连接完成后,所有的服务,charecteristics和描述符将被发现。最后,描述符后发现已经完成,我已经内置函数中插入一个行dimmer1_connected = true。整个过程需要2 - 3秒。3秒之后,当我再次按下按钮,它最终将进入dimmer1_connected = = true节和发送亮度值。所以你可以看到,我要按下按钮两次(发送数据1连接,2)能够发送数据。这个问题发生因为每当我给一个命令连接到调光器设备(通过gboolD1Connect真的,或通过使用app_easy_gap_start_connection_to_set ()函数),我必须退出中断例程和允许主程序运行实际,这样会发生连接。但自从我退出中断例程,我重新将如何发送数据一旦外围设备连接?

所以我有两个问题需要帮助:

  1. 什么改变我可以在这个代码示例能够操作调光器通过按按钮只有一次?
  2. 是什么procdure做角色转换从中心到边缘,反之亦然?

提前感谢你的帮助,
前腿帕特尔

MHv_Dialog
离线
最后看到:3个月2周前
工作人员
加入:15 2013-12-06
嗨,前腿,

嗨,前腿,

我可以建议你看看无代码示例应用程序(https://support.dialog-semiconductor.com/connectivity/reference-design/smartbond-codeless-serial-link)。

这个应用程序演示了中央和周边设备的各个方面以及如何角色之间切换。

/ MHv

前腿帕特尔
离线
最后看到:2年7个月前
加入:2017-03-29专机
嗨MHv,

嗨MHv,

你给的建议是很好的,我兴奋地去推进它的实现。但看文档,我知道将会有两个主要的事情需要实现:

(1)DA1458x BLE固件模块的命令
(2)第三方微控制器来控制BLE模块

但是对于我来说,我只有DA1458x BLE模块在一个芯片上。我没有权限添加另一个第三方控制器在同一芯片控制BLE模块。

我希望我DA1458x BLE模块有一个固件,然后逻辑调用的顺序在命令本身以独立的方式经营。

所以,有可能实现AT命令方法不需要任何外部控制机制和终端一样,android应用程序或第三方控制器吗?

谢谢,
前腿帕特尔

MHv_Dialog
离线
最后看到:3个月2周前
工作人员
加入:15 2013-12-06
嗨,前腿,

嗨,前腿,

实现应该用于指导如何完成不同的事情。通过运行代码,调试器,通过各种命令,你将能够遵循如何acheieved看似复杂的任务。下面几个例子:

  • 角色转移(中央和边缘之间)
  • 启动,停止和改变广告数据和间隔
  • 配置设置和阅读GPIOs的状态
  • 连接到特定periperal设备中心,发现服务和交换数据
  • 通过I2C接口与外部传感器

无代码的实现是使用在命令触发不同的动作,但它应该可以编写自己的逻辑来驱动,相同的功能(您可能只是适用从无代码的代码复制到您的项目)

/ MHv

chenpenglai
离线
最后看到:2个月3周前
加入:2018-12-24 02:24
我不能够发现

我不能发现的特点,但我可以发现服务,ble_app_peripheral为基础的项目

你能告诉我如何发现特征吗?

非常感谢!

PM_Dialog
离线
最后看到:4小时35分钟前
工作人员
加入:2018-02-08 11:03
嗨chenpenglai,

嗨chenpenglai,

这个论坛线程很旧,所以我建议您创建一个新的。如果你不知道你应该遵循的程序来创建一个新的论坛线程,请让我知道,我将提供你需要的所有步骤。所以,请创建一个新的论坛帖子,复制粘贴你的问题。

关于你的问题,你用的哪个版本的SDK ?你做了任何修改在ble_app_peripheral SDK的例子吗?

谢谢,PM_Dialog