Q1:我想将数据从IoT传感器设备发送到DA14580上的DSPS主机,如何进行?我要做的更改是什么?Q2:类似地,我想从自定义配置文件- sample128_After章节7.3.6项目发送数据到DSPS主机上运行在DA14580,如何做?谢谢你. .对话框
嗨prasanth.velliyangiri,
1.这些是不同的项目,所需的更改远非微小的修改,DSPS主机检查特定配置文件(DSP配置文件),因此您应该更改主机的服务发现操作并将其调整为IOT可用服务特征。发现服务后,可以在可用特征上启用通知,并且您可以按UART上通知您的数据。
2.这同样适用于自定义项目,您必须更改主机的发现过程,以找到自定义概要文件的特征。
由于MT_dialog
问:如何为客户端角色创建自定义配置文件,搜索服务(Sample128_After第7.3.6.zip项目(@Server角色))连接到服务,查找特征并读取/写入特征?我经历了rw-ble-gatt-is.doc。这个Doc只给出协议。所以,如果您提供的步骤教程,如自定义档案创作,那将是很棒的..谢谢你..!
annihilate没有可用的教程的实现服务的发现过程和特点,但是你可以作为一个例子的需求方(这是一个定制的128位服务)主机端为了实现自己的中央连接,搜索和发现一个特定的服务在客户端设备。
亲爱的对话框这些是我在DSPS主机- sample128_After章节7.3.6项目中所做的更改-@服务器角色第1步:按照我的自定义配置文件服务和特征,在SPS_CLIER.H中介入UUIDsps_service_uuid = sample128_svc.SPS_SERVER_TX_UUID = sample128_1_valsps_server_rx_uuid = sample128_2_val.sps_flow_ctrl_uuid = sample128_3_val.第2步:下一个凹陷const struct prf_char_def_128 spsc_sps_char[SPSC_CHAR_MAX] ={[spsc_srv_tx_data_char] = {sample128_1_val,att_mandatory,att_char_prop_rd |ATT_CHAR_PROP_WR},[SPSC_SRV_RX_DATA_CHAR] = {sample128_2_val, ATT_MANDATORY, ATT_CHAR_PROP_RD | ATT_CHAR_PROP_NTF},[spsc_flow_ctrl_char] = {sample128_3_val,att_mandatory,att_char_prop_rd |ATT_CHAR_PROP_NTF}};
步骤3:在sps_client_enable_req_handler和gattc_cmp_evt_handler中分配UUID…
UINT8_T SPS_DATA_SERVICE_UUID [] = SAMPLE128_SVC;
但代码停止在global_int_start();// Arch_Main.我错过了什么......?我还有什么要改变的?
嗨prasanth,
首先,您提到您的代码停止在GLOBAL_INT_START();我不认为你的代码停止,它遍历以来的主要功能和设备扫描,不做任何其他的这个点代码通过更多,所以你正常运行while循环作为你应该和所有的例子都做的。
通过将DSP UUID更改为项目的UUID,但发现函数填充DSP环境结构,该结构占据了链接另一侧发现的服务的信息,因此您必须修改它的可供选择也需要。为了检查发现是否正常工作,您必须检查应用程序环境中的信息是否适当,对应于外围数据库的实际处理。
你能告诉我,当客户个人资料教程将可用时请告诉我?谢谢对话框
据我所知,没有任何计划的教程,将指导您一步一步关于创建一个主机和发现过程。
亲爱的对话框在DSPS_HOST项目Q1:您能指定与从DSPS_DEVICE(服务器项目)读取特征相关的函数吗?
在580中,没有指示应用程序中央已经读取了你的特征,这是由堆栈处理的,没有概要应用程序函数做这一点,如果这是你的意思。有关DSPS应用程序配置文件功能的更多信息,您可以查看用户手册(UM-B-038)中的6.7节串口服务应用程序任务接口。
msgid,liment128_timer_handler(ke_msg_id_t const msgid,struct gapm_cmp_evt const * param,ke_task_id_t const dest_id,ke_task_id_t const src_id){
ke_timer_set (APP_SAMPLE128_TIMER TASK_APP 50);Sample128_PlaceHolder ++;
struct sample128_upd_char2_req *req = KE_MSG_ALLOC(SAMPLE128_UPD_CHAR2_REQ,TASK_SAMPLE128,TASK_APP,sample128_upd_char2_req);req-> val = sample128_PlaceHolder;申请- > conhdl = app_env.conhdl;KE_MSG_SEND(REQ);}我想实现以上的定时器处理程序在DSPS设备项目的数据,我们正在传输,所以DSPS设备项目定期传输,如何做到这一点…我在-user_sps_server_data_tx_cfm_handler中尝试过,但似乎不工作
示例128使用不同的消息来触发比DSP项目的通知。您提到的函数发送示例128_upd_char2_req消息,DSP中没有处理此类消息的DSP中没有处理程序,因为DSP不支持此消息。您提到的处理程序处理SPS_SERVER_DATA_TX_CFM,该命令确认数据已放在TX缓冲区中。如果您希望设备定期发送数据,您可以在下面的帖子遵循http://support.dialog-semiconductor.com/dsps-panasonic-evalpan1740。
亲爱的对话框,
/ *************************************************************** /typedef struct wrbl_env_T{
void(* wrbl_timer_cb)();
uint16_t sensor_read_time;/ /副总裁uint16_t sensor_read_time_1;/ /副总裁uint16_t sensor_read_time_2;/ /副总裁
wrbl_env_struct;
/****************************************************************/
初始化,成功{如果(init){句号_data_timer_handler();}其他的{句号_data_timer_handler();}}
/ ******************************************************************** /空白periodical_data_timer_handler(空白){静态uint16_t长度;uint8_t *p_data = NULL;user_send_ble_data(p_data,长度);wrbl_env.sensor_read_time = app_easy_timer(100,句号_data_timer_handler);
}
/ ********************************************************************** /Void user_on_disconnect(struct gapc_disconnect_ind const *param){default_app_on_disconnect(参数);arch_printf(“设备断开连接\ r \ n”);如果(wrbl_env。sensor_read_time = = 1){app_easy_timer_cancel (wrbl_env.sensor_read_time);}
/*********************************************************************/
Q1:我在DSP设备项目的上面更改 - 代码在这里停止 - > if((getword16(sys_stat_reg)&dbg_is_up)== dbg_is_up)__asm(“BKPT # 0 \ n”);
有什么问题吗?我错过了什么?谢谢你!
我猜你的代码停止在NMI或Hardfault处理程序,你的代码要么卡在某处,最有可能的是读取SPI传感器(NMI处理程序,如果watchdog是启用的)或你访问一个NULL指针和Hardfault处理程序触发。为了找出错误发生的地方,SDK提供了该特性,请检查UM-B-051文档以获取更多信息,以便调试该特性。
亲爱的对话框Q1:即使添加此功能后,我也没有在传输中找到任何延迟。你能帮我解决这个问题吗?空白periodical_data_timer_handler(空白){/ /静态uint16_t长度;//uint8_t *p_data = NULL;user_send_ble_data(“别人”,6);wrbl_env。Sensor_read_time = app_easy_timer(20000, periodical_data_timer_handler);
/*如果(wrbl_env.sensor_read_time!= null){app_easy_timer_cancel (wrbl_env.sensor_read_time);* /}
Q2:如果我想使用ke_timer_set();直接用于定期传输,如何在DSP设备项目中使用它?
我没有得到这个问题,内核计时器没有触发?您可以使用ARCH_SET_PXACT_GPIO()并检查计时器是否已过度。我在新的DSP项目中测试了上面的代码,并在连接时触发定时器,它工作正常,我可以在手机应用程序上正确接收数据。
使用app_easy_timer()API,它使用KE_TIMER_SET(),并且当处理程序执行时,您可以执行代码并重置计时器。如果要直接使用ke_timer_set检查您的其他帖子http://support.dialog-semicondiondiondiondum/apptimerset-0.。
我没有得到 - 连接时触发计时器?实际上我正在打电话 - 句号 - _data_timer_handler();- 内部函数 - void user_ble_pull(bool init,bool成功)......你能否建议我在哪里放置 - 句号_data_timer_handler();- DSP设备项目中的呼叫功能?如果你给我工作的例子代码,那就太好了......
您必须建立一个连接,以便开始向中央发送通知,而无需连接,我不会看到这是可能的。因此,连接到一个中央并启动计时器,当处理程序触发时,您将通过user_send_ble_data发送通知,并且您将重置计时器。preriodical_data_timer_handler()只是一个处理程序,当您使用该回调的计时器启动时,将在时间过去时执行回调。
嗨prasanth.velliyangiri,
1.这些是不同的项目,所需的更改远非微小的修改,DSPS主机检查特定配置文件(DSP配置文件),因此您应该更改主机的服务发现操作并将其调整为IOT可用服务特征。发现服务后,可以在可用特征上启用通知,并且您可以按UART上通知您的数据。
2.这同样适用于自定义项目,您必须更改主机的发现过程,以找到自定义概要文件的特征。
由于MT_dialog
问:如何为客户端角色创建自定义配置文件,搜索服务(Sample128_After第7.3.6.zip项目(@Server角色))连接到服务,查找特征并读取/写入特征?
我经历了rw-ble-gatt-is.doc。这个Doc只给出协议。所以,如果您提供的步骤教程,如自定义档案创作,那将是很棒的..谢谢你..!
嗨prasanth.velliyangiri,
annihilate没有可用的教程的实现服务的发现过程和特点,但是你可以作为一个例子的需求方(这是一个定制的128位服务)主机端为了实现自己的中央连接,搜索和发现一个特定的服务在客户端设备。
由于MT_dialog
亲爱的对话框
这些是我在DSPS主机- sample128_After章节7.3.6项目中所做的更改-@服务器角色
第1步:按照我的自定义配置文件服务和特征,在SPS_CLIER.H中介入UUID
sps_service_uuid = sample128_svc.
SPS_SERVER_TX_UUID = sample128_1_val
sps_server_rx_uuid = sample128_2_val.
sps_flow_ctrl_uuid = sample128_3_val.
第2步:下一个凹陷
const struct prf_char_def_128 spsc_sps_char[SPSC_CHAR_MAX] ={
[spsc_srv_tx_data_char] = {sample128_1_val,att_mandatory,att_char_prop_rd |ATT_CHAR_PROP_WR},
[SPSC_SRV_RX_DATA_CHAR] = {sample128_2_val, ATT_MANDATORY, ATT_CHAR_PROP_RD | ATT_CHAR_PROP_NTF},
[spsc_flow_ctrl_char] = {sample128_3_val,att_mandatory,att_char_prop_rd |ATT_CHAR_PROP_NTF}
};
步骤3:在sps_client_enable_req_handler和gattc_cmp_evt_handler中分配UUID…
UINT8_T SPS_DATA_SERVICE_UUID [] = SAMPLE128_SVC;
但代码停止在global_int_start();// Arch_Main.
我错过了什么......?我还有什么要改变的?
嗨prasanth,
首先,您提到您的代码停止在GLOBAL_INT_START();我不认为你的代码停止,它遍历以来的主要功能和设备扫描,不做任何其他的这个点代码通过更多,所以你正常运行while循环作为你应该和所有的例子都做的。
通过将DSP UUID更改为项目的UUID,但发现函数填充DSP环境结构,该结构占据了链接另一侧发现的服务的信息,因此您必须修改它的可供选择也需要。为了检查发现是否正常工作,您必须检查应用程序环境中的信息是否适当,对应于外围数据库的实际处理。
由于MT_dialog
你能告诉我,当客户个人资料教程将可用时请告诉我?
谢谢对话框
嗨prasanth,
据我所知,没有任何计划的教程,将指导您一步一步关于创建一个主机和发现过程。
由于MT_dialog
亲爱的对话框
在DSPS_HOST项目
Q1:您能指定与从DSPS_DEVICE(服务器项目)读取特征相关的函数吗?
嗨prasanth,
在580中,没有指示应用程序中央已经读取了你的特征,这是由堆栈处理的,没有概要应用程序函数做这一点,如果这是你的意思。有关DSPS应用程序配置文件功能的更多信息,您可以查看用户手册(UM-B-038)中的6.7节串口服务应用程序任务接口。
由于MT_dialog
msgid,liment128_timer_handler(ke_msg_id_t const msgid,
struct gapm_cmp_evt const * param,
ke_task_id_t const dest_id,
ke_task_id_t const src_id)
{
ke_timer_set (APP_SAMPLE128_TIMER TASK_APP 50);
Sample128_PlaceHolder ++;
struct sample128_upd_char2_req *req = KE_MSG_ALLOC(
SAMPLE128_UPD_CHAR2_REQ,
TASK_SAMPLE128,
TASK_APP,
sample128_upd_char2_req
);
req-> val = sample128_PlaceHolder;
申请- > conhdl = app_env.conhdl;
KE_MSG_SEND(REQ);
}
我想实现以上的定时器处理程序在DSPS设备项目的数据,我们正在传输,所以DSPS设备项目定期传输,如何做到这一点…我在-user_sps_server_data_tx_cfm_handler中尝试过,但似乎不工作
嗨prasanth,
示例128使用不同的消息来触发比DSP项目的通知。您提到的函数发送示例128_upd_char2_req消息,DSP中没有处理此类消息的DSP中没有处理程序,因为DSP不支持此消息。您提到的处理程序处理SPS_SERVER_DATA_TX_CFM,该命令确认数据已放在TX缓冲区中。如果您希望设备定期发送数据,您可以在下面的帖子遵循http://support.dialog-semiconductor.com/dsps-panasonic-evalpan1740。
由于MT_dialog
亲爱的对话框,
/ *************************************************************** /
typedef struct wrbl_env_T
{
void(* wrbl_timer_cb)();
uint16_t sensor_read_time;/ /副总裁
uint16_t sensor_read_time_1;/ /副总裁
uint16_t sensor_read_time_2;/ /副总裁
wrbl_env_struct;
/****************************************************************/
初始化,成功
{
如果(init)
{
句号_data_timer_handler();
}
其他的
{
句号_data_timer_handler();
}
}
/ ******************************************************************** /
空白periodical_data_timer_handler(空白)
{
静态uint16_t长度;
uint8_t *p_data = NULL;
user_send_ble_data(p_data,长度);
wrbl_env.sensor_read_time = app_easy_timer(100,句号_data_timer_handler);
}
/ ********************************************************************** /
Void user_on_disconnect(struct gapc_disconnect_ind const *param)
{
default_app_on_disconnect(参数);
arch_printf(“设备断开连接\ r \ n”);
如果(wrbl_env。sensor_read_time = = 1)
{
app_easy_timer_cancel (wrbl_env.sensor_read_time);
}
}
/*********************************************************************/
Q1:我在DSP设备项目的上面更改 - 代码在这里停止 - > if((getword16(sys_stat_reg)&dbg_is_up)== dbg_is_up)
__asm(“BKPT # 0 \ n”);
有什么问题吗?我错过了什么?谢谢你!
嗨prasanth,
我猜你的代码停止在NMI或Hardfault处理程序,你的代码要么卡在某处,最有可能的是读取SPI传感器(NMI处理程序,如果watchdog是启用的)或你访问一个NULL指针和Hardfault处理程序触发。为了找出错误发生的地方,SDK提供了该特性,请检查UM-B-051文档以获取更多信息,以便调试该特性。
由于MT_dialog
亲爱的对话框
Q1:即使添加此功能后,我也没有在传输中找到任何延迟。你能帮我解决这个问题吗?
空白periodical_data_timer_handler(空白)
{
/ /静态uint16_t长度;
//uint8_t *p_data = NULL;
user_send_ble_data(“别人”,6);
wrbl_env。Sensor_read_time = app_easy_timer(20000, periodical_data_timer_handler);
/*如果(wrbl_env.sensor_read_time!= null)
{
app_easy_timer_cancel (wrbl_env.sensor_read_time);
* /
}
Q2:如果我想使用ke_timer_set();直接用于定期传输,如何在DSP设备项目中使用它?
嗨prasanth,
我没有得到这个问题,内核计时器没有触发?您可以使用ARCH_SET_PXACT_GPIO()并检查计时器是否已过度。我在新的DSP项目中测试了上面的代码,并在连接时触发定时器,它工作正常,我可以在手机应用程序上正确接收数据。
使用app_easy_timer()API,它使用KE_TIMER_SET(),并且当处理程序执行时,您可以执行代码并重置计时器。如果要直接使用ke_timer_set检查您的其他帖子http://support.dialog-semicondiondiondiondum/apptimerset-0.。
由于MT_dialog
我没有得到 - 连接时触发计时器?实际上我正在打电话 - 句号 - _data_timer_handler();- 内部函数 - void user_ble_pull(bool init,bool成功)......你能否建议我在哪里放置 - 句号_data_timer_handler();- DSP设备项目中的呼叫功能?如果你给我工作的例子代码,那就太好了......
嗨prasanth,
您必须建立一个连接,以便开始向中央发送通知,而无需连接,我不会看到这是可能的。因此,连接到一个中央并启动计时器,当处理程序触发时,您将通过user_send_ble_data发送通知,并且您将重置计时器。preriodical_data_timer_handler()只是一个处理程序,当您使用该回调的计时器启动时,将在时间过去时执行回调。
由于MT_dialog