亲爱的对话框
我的问题是
1.多体DSP设备将处于睡眠模式(Appx 6 DSP设备)
2.DSPS主机轮询一个DSPS设备,所以DSPS设备唤醒并准备发送数据。
3.当轮询结束,下一步,DSPS主机将轮询下一个DSPS设备。如何做到这一点?请指引我…!
谢谢你的对话框
关键词:
设备:
亲爱的对话框
我的问题是
1.多体DSP设备将处于睡眠模式(Appx 6 DSP设备)
2.DSPS主机轮询一个DSPS设备,所以DSPS设备唤醒并准备发送数据。
3.当轮询结束,下一步,DSPS主机将轮询下一个DSPS设备。如何做到这一点?请指引我…!
谢谢你的对话框
嗨prasanth.velliyangiri,
我认为您的意思是设备未连接,您不希望实现多个同时连接,而是一个连接、交换数据和断开连接的方案。
1.外围设备必须一次又一次地唤醒来发布广告,中央无法看到非广告设备。
2.为了发送数据,必须有一个连接,因此一旦扫描仪从外设找到广告,你可以检查广告字符串或bd地址中的信息,并从中央发出连接请求。
3.交换数据后,主机可以断开连接并继续扫描下一个外设来连接和交换数据。
由于MT_dialog
是的,您应该能够采用具有客户端(中央/主机)和服务器(外设/设备)实现的最新DSP应用程序。
目前,客户端应用程序只是简单地扫描任何DSPS外设,并连接到它找到的第一个。
您需要修改应用程序的客户端,以执行您需要的操作。
谢谢你,马丁
嗨对话框
感谢您的回复。我正在使用dsp项目,我可以配置BLE设备地址
Q1:我看到不同的BLE地址,为什么??
1.#define BT_DEFAULT_BDADDR {{0x01, 0x23, 0x45, 0x67, 0x89, RIPPLE_ID}} (in => co_bt.h)
2./// BD设备地址
.peer_addr_0 = {0x0, 0x0, 0x0, 0x0, 0x0}, (in => user_config.h - line 340)
3.在DSPS Android应用程序中
device_address 90:b6:86:97:D2:A7(这个地址我无法找到DSPS_DEVICE项目中的)
4.#define CFG_NVDS_TAG_BD_ADDRESS {0x00, 0x00, 0x00, 0xCA, 0xEA, 0x80} (in nvds.c)
Q2:根据什么参数MASTER(DSPS_HOST)将决定哪个slave(DSPS_Device)它必须连接??(central(DSPA_HOST)与Slave (DSPS_DEVICE)连接所需的参数是什么?)
谢谢你对话……
嗨prasanth.velliyangiri,
Q1。您可以配置BD地址,引用设计从NVDS结构获取其BD地址,并且BD地址可以从CFG_NVDS_TAG_BD_ADDRESS的DA1458x_config_Advanced.h文件配置,如果您更改此,则该BD您的设备的地址应该改变。SDK虽然它首先检查OTP标头设备ID字段是否已刻录,包含与0不同的值。如果标题的值小于零,则这是设备将使用的地址。因此,如果在NVDS中定义BD地址,并且您的OTP标题具有刻录的设备ID字段,则将使用OTP的地址。在多个连接的情况下,您指示的结构构件涉及连接设备的BD地址。
Q2。当中央将在获得广告指示后立即发送连接参数,在user_on_add_report_ind中调用app_easy_gap_start_connection_to_set(),传递的参数是间隔12.5ms,并且从user_central_conf结构中拍摄REST参数。
由于MT_dialog
嗨对话框
感谢您的回复。
Q1。在DSPS_DEVICE项目中广告的开始和停止??我想实现一个逻辑,在连接发生与DSPS_HOST, DSPS_DEVICE将收到一个测试str从DSPS_HOST和做比较与预定义的数据,如果它匹配,然后DSPS_DEVICE发送它的数据到DSPS_HOST。
如果你能给出一个状态图,告诉DSPS_DEVICE的广告,接收连接请求,发送数据和类似的DSPS_HOST功能,那就太好了。
谢谢你的对话框
嗨prasanth.velliyangiri,
Q1。一旦启动,设备就开始发布广告,并一直发布,直到设备上有一个中央连接,一旦中央与设备断开连接,外设就开始再次发布广告。关于你的问题,你的意思是当连接和断开连接发生时,外设会触发哪些功能?这些函数将是user_on_connection()和user_on_disconnect。关于广告宣传你调用default_advertise_operation开始,在default_app_on_db_init_complete调用(一旦创建数据库)和广告停止就会发生你的设备连接或一旦你取消它。
Q2。在图4和5中的DSP用户手册UM-B-038中,示出了外围和中心的应用FSM。
由于MT_dialog
嗨对话框
感谢您的回复。。
在调试DSPS_DEVICE代码时(我从(app_task.c / line 383)=> execute_callback_void(app_on_db_init_complete),代码停止在下面的函数
int app_entry_point_handler(ke_msg_id_t const msgid,
void const * param,
ke_task_id_t const dest_id,
ke_task_id_t const src_id)
{
int i = 0;
enum ke_msg_status_tag process_msg_handling_result;
当我
嗨prasanth.velliyangiri,
您提到的函数是用于处理从BLE堆栈接收到的所有消息的主处理程序。代码到底在哪里?你对SDK做了什么改变吗?
由于MT_dialog
关于DSPS_HOST轮询DSPS_DEVIECE的对话
我正在做以下工作
dsps_host -
// ***在user_sps_scheduler.c
///用户轮询数据
#define user_poll_data“\ x1a \ x1b \ x1c \ x1d \ x1e \ x1f”
void user_ble_pull(bool init,bool成功)
{
如果{
user_send_ble_data (USER_POLL_DATA 6);
}
其他{
user_send_ble_data (USER_POLL_DATA 6);
}
}
/ **************************************************************************************************************** /
/ /在DSPS_DEVIECE
// ***在user_sps_scheduler.c
Void user_ble_push(uint8_t* wrdata, uint16_t write_amount)
{
//将项目写入缓冲区;
user_buffer_write_items(&ble_to_periph_buffer,wrdata,write_amount);
periodic_timer_handler ();
}
periodic_timer_handler ()
{
user_send_ble_data(“PRASANTH”,8);//会定期发送数据
}
主发送轮询数据=>设备接收UART的任何数据,定期计时器称为,现在Deviec将发送自己的数据...
但是我没有看到任何DSPS_HOST方面的数据??任何帮助
谢谢
嗨prasanth.velliyangiri,
您已从User_ble_Pull中删除了所有实现,删除了所有检查和初始化,并通过没有条件的简单If()替换此操作,并且您只需对圣务区执行写入。让我们假设您不想将数据更新或推送到缓冲区中,因此您不需要上述所有功能,您只想直接写入其他特征(只是通过执行上述方式清除,您正在绕过发送数据的缓冲区到另一侧,您将数据写入外围特性)。DSP应用程序中的许多函数在包括user_on_system_powered()中的许多函数调用了user_ble_pull,这意味着即使在未连接时也会向堆栈发送数据,我无法预测会发生什么。如果您只想直接写入从设备的特征,您只需在连接时从主机中设置计时器并开始将数据与user_send_ble_data()发送到另一侧(确保在UART上进行正确的连接)。在您这样做的情况下,您可以在另一侧获取数据,在设备中的数据接收时启动定期处理程序,您应该在主机上开始获取数据,如果没有检查主机上的接收处理程序是否触发。另请确保已正确连接流控制引脚,并且您的终端在定义的流量控制下运行。
由于MT_dialog
嗨对话小组
在DSPS_HOST code =>
/******************************************************************************************************/
void user_ble_pull(bool init,bool成功)
{
如果{
user_send_ble_data(“USER_POLL_DATA”,14);
}
其他{
user_send_ble_data(“USER_POLL_DATA”,14);
}
}
/ **************************************************************************************************************** /
/ /在DSPS_DEVIECE
# DSPS_POLLDATA“DSPS_POLLDATA”
// ***在user_sps_scheduler.c
Void user_ble_push(uint8_t* wrdata, uint16_t write_amount)
{
//将项目写入缓冲区;
user_buffer_write_items(&ble_to_periph_buffer,wrdata,write_amount);
if(!memcmp(wrdata,dsps_polldata,sizeof(dsps_polldata))))
{
periodic_timer_handler ();
}
}
/**********************************************************************************/
periodic_timer_handler ()
{
user_send_ble_data(“PRASANTH”,8);//会定期发送数据
}
轮询以上逻辑主机< = >一个DSPS_DEVICE没问题,但随着主机< = >,因此DSPS_DEVICE我得不到任何数据,与我这轮询逻辑主机< = >,因此DSPS_DEVICE代码工作正常(我能够连接两个设备在同一时间,我让数据从DSPS_DEVICE主机侧),可能会出现什么问题
谢谢
嗨prasanth.velliyangiri,
如许多帖子所述,DSP示例不支持在一个外设上连接的多个从站,您可以看一下这篇文章,其中客户达到该帖子,但对话框不支持这一点https://support.dialog-semiconductor.com/multiple-slaveda14580-connectio..。。我想在尝试从中央发送数据时,首先要查看的是连接索引,请检查您尝试通过数据从设备1或从设备的两个连接的站点。
由于MT_dialog