IOT (Server) to DSPS (Host)data transmission

18 posts / 0 new
最后一篇文章
prasanth.velliy...
离线
最后一次见到:1年10个月前
已加入:2016-02-18 12:18
IOT (Server) to DSPS (Host)data transmission

Q1 : I want to send data from IOT sensor device to the DSPS host running on DA14580 , how to do it ? what are the changes that i have to do ?
Q2:同样的,我想把7.3.6节项目之后的定制profile-sample128撴的数据发送到运行在DA14580上的DSPS主机上,怎么做?
谢谢……对话

Device:
MT\u对话框
离线
最后一次见到:2个月1周前
工作人员
已加入:2015-06-08 11:34
你好,prasanth.velliyangiri,

你好,prasanth.velliyangiri,

1.这些是不同的项目和变化quired are far from small modifications, the DSPS host checks for a specific profile (the DSPS profile), so you should change the service discovery operation of the host and adapt it to the IoT available services and characteristics. After discovering the services enable the notifications on the available characteristics and you can push the data that you are notified over the UART.

2.这同样适用于自定义项目,您必须更改主机的发现过程才能找到自定义配置文件的特征。

谢谢你的对话

prasanth.velliy...
离线
最后一次见到:1年10个月前
已加入:2016-02-18 12:18
Q : How to create a custom

Q : How to create a custom profile for Client role , that searches service(sample128_After section 7.3.6.zip project (@server role)), connects to service , finds characteristics and read/write to the characteristics ?
I have gone through RW-BLE-GATT-IS.doc . this doc just gives the protocols only.so, it would be great, if you provide step by step tutorial like custom profile creation..thank you..!!!

MT\u对话框
离线
最后一次见到:2个月1周前
工作人员
已加入:2015-06-08 11:34
你好,prasanth.velliyangiri,

你好,prasanth.velliyangiri,

不幸的是,关于服务和特征的发现过程的实现没有可用的教程,但是您可以以DSPS(这是一种定制的128位服务)主机端为例,以便实现您自己的连接、搜索和发现客户机设备中特定服务的中心。

谢谢你的对话

prasanth.velliy...
离线
最后一次见到:1年10个月前
已加入:2016-02-18 12:18
亲爱的Dialog

亲爱的Dialog
这些是我在第7.3.6节项目之后在DSPS HOST-sample128\u中所做的更改-@server角色
step 1: chaged the UUID in sps_client.h as per my Custom profile service and characteristics
SPS_SERVICE_UUID = sample128_svc
SPS\u SERVER\u TX\u UUID=sample128\u 1值
SPS_SERVER_RX_UUID = sample128_2_val
SPS_FLOW_CTRL_UUID = sample128_3_val
step 2: Next chage in
const struct prf\ u char\ u def\ u 128 spsc\ u sps\ u char[spsc\ u char\ u 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\u client\u enable\u req\u handler&gattc\u cmp\u evt\u handler中分配UUID。。。

uint8_t sps_data_service_uuid[]=sample128_svc ;

但代码停止在global_int_start();// Arch_Main.
我错过了什么......?我还有什么要改变的?

MT\u对话框
离线
最后一次见到:2个月1周前
工作人员
已加入:2015-06-08 11:34
嗨,普拉桑,

嗨,普拉桑,

首先,您提到您的代码在GLOBAL_INT_start()处停止;我不认为你的代码停在那里,它只是通过主函数循环,由于设备只是扫描,不做任何其他事情,这是你的代码通过更频繁的点,所以你运行while循环正确,因为你应该和所有的例子都在做。

通过将DSP UUID更改为项目的UUID,但发现函数填充DSP环境结构,该结构占据了链接另一侧发现的服务的信息,因此您必须修改它的可供选择也需要。为了检查发现是否正常工作,您必须检查应用程序环境中的信息是否适当,对应于外围数据库的实际处理。

谢谢你的对话

prasanth.velliy...
离线
最后一次见到:1年10个月前
已加入:2016-02-18 12:18
你能告诉我,

你能告诉我,when the Client profile Tutorial will be available ??
Thank you Dialog

MT\u对话框
离线
最后一次见到:2个月1周前
工作人员
已加入:2015-06-08 11:34
嗨,普拉桑,

嗨,普拉桑,

据我所知,没有任何正在进行的教程,将指导你一步一步关于主机的创建和发现过程的计划。

谢谢你的对话

prasanth.velliy...
离线
最后一次见到:1年10个月前
已加入:2016-02-18 12:18
亲爱的Dialog

亲爱的Dialog
在DSPS\U主机项目中
问题1:您能否指定与从DSPS\U设备(服务器项目)读取特征相关的功能

MT\u对话框
离线
最后一次见到:2个月1周前
工作人员
已加入:2015-06-08 11:34
嗨,普拉桑,

嗨,普拉桑,

在580中,没有向应用程序指示中心已经读取了您的特征,这是由堆栈处理的,如果这是您的意思的话,没有配置文件应用程序函数来执行此操作。有关DSP应用程序配置文件功能的更多信息,请参阅用户手册(UM-B-038),位于6.7节“应用程序任务接口到串行端口服务”。

谢谢你的对话

prasanth.velliy...
离线
最后一次见到:1年10个月前
已加入:2016-02-18 12:18
int sample128_timer_handler

msgid,liment128_timer_handler(ke_msg_id_t const msgid,
struct gapm_cmp_evt const *param,
任务id常量目标id,
Keu任务\u id \u t const src \u id)
{

KEU定时器设置(应用程序样本128定时器,任务应用程序,50);
Sample128_PlaceHolder ++;

结构示例128\u upd\u char2\u req*req=KE\u MSG\u ALLOC(
样本128\ UPD\ CHAR2\ REQ,
任务样本128,
任务应用程序,
样本128\ upd\ char2\ req
);
req->val = sample128_placeholder;
需求->控制盘=应用程序环境控制盘;
ke_msg_send(req);
}
我想在我们正在传输的数据的dsps设备项目中实现上述计时器处理程序,因此dsps设备项目会定期传输..如何做到这一点…我在-user\u sps\u server\u data\u tx\u cfm\u处理程序中尝试过-但似乎不起作用

MT\u对话框
离线
最后一次见到:2个月1周前
工作人员
已加入:2015-06-08 11:34
嗨,普拉桑,

嗨,普拉桑,

The sample128 uses different messages in order to trigger notifications than the DSPS project. The function that you mention sends a SAMPLE128_UPD_CHAR2_REQ message, there is no handler in the DSPS that handles this kind of message, since the DSPS doesn't support this message. The handler that you mention handles the SPS_SERVER_DATA_TX_CFM that confirms that the data are placed in the TX buffer. If you want the device to send data periodically you can follow the post belowhttp://support.dialog-semiconductor.com/dsps-panasonic-evalpan1740.

谢谢你的对话

prasanth.velliy...
离线
最后一次见到:1年10个月前
已加入:2016-02-18 12:18
亲爱的Dialog,

亲爱的Dialog,

/ *************************************************************** /
typedef结构wrbl\u env\T
{

void (*wrbl_timer_cb)();

uint16_t sensor_read_time;// vp.
uint16传感器读取时间副总裁
uint16传感器读取时间副总裁

} wrbl_env_struct;

/****************************************************************/

无效用户\u ble \u pull(bool init,bool success)
{
if (init)
{
periodical_data_timer_handler();
}
其他的
{
periodical_data_timer_handler();
}
}

/ ******************************************************************** /
作废数据计时器处理程序(作废)
{
静态uint16_t长度;
uint8\u t*p\u data=NULL;
user_send_ble_data(p_data, length);
wrbl_env.sensor_read_time = app_easy_timer( 100, periodical_data_timer_handler );

}

/ ********************************************************************** /
void user\u on \u disconnect(struct gapc \u disconnect \u ind const*param)
{
断开连接时的默认应用程序(param);
arch_printf(“设备已断开连接\r\n”);
如果(wrbl_env.sensor_read_time==1)
{
应用程序\u轻松\u计时器\u取消(wrbl \u环境传感器\u读取时间);
}

}

/*********************************************************************/

Q1 : i have made above changes in DSPS device project -code is stopping here -> if ((GetWord16(SYS_STAT_REG) & DBG_IS_UP) == DBG_IS_UP)
__asm(“BKPT#0\n”);

有什么问题?我遗漏了什么??谢谢您。。

MT\u对话框
离线
最后一次见到:2个月1周前
工作人员
已加入:2015-06-08 11:34
嗨,普拉桑,

嗨,普拉桑,

我猜您的代码在NMI或Hardfault处理程序中停止,您的代码可能在某个地方阻塞,最有可能是在读取SPI传感器(如果启用了看门狗,则为NMI处理程序)时,或者您正在访问空指针并触发Hardfault处理程序。SDK提供了该功能,为了找出错误发生的位置,请查看UM-B-051文档以获取更多信息,以便对此进行调试。

谢谢你的对话

prasanth.velliy...
离线
最后一次见到:1年10个月前
已加入:2016-02-18 12:18
亲爱的Dialog

亲爱的Dialog
Q1 : Even after adding this function , i didn't find any delay in transmission . could you please help me to solve this issue ??
作废数据计时器处理程序(作废)
{
//静态单位长度;
//uint8\u t*p\u data=NULL;
user_send_ble_data(“别人”,6);
wrbl_env.sensor_read_time=app_easy_timer(20000,定期数据_timer_处理程序);

/*if(wrbl_env.sensor_read_time != NULL)
{
应用程序\u轻松\u计时器\u取消(wrbl \u环境传感器\u读取时间);
}*/
}

Q2 : if i want to use ke_timer_set(); directly for periodic transmission , how to use this in DSPS device project ??

MT\u对话框
离线
最后一次见到:2个月1周前
工作人员
已加入:2015-06-08 11:34
嗨,普拉桑,

嗨,普拉桑,

I dont get the question, the kernel timer didn't triggered ? You can use the arch_set_pxact_gpio() and check if the timer elapses or not. I tested the above code in a new DSPS project and triggered the timer upon connection, it works just fine and i can receive data properly on the phone application.

Use the app_easy_timer() api, it uses the ke_timer_set() and when the handler executes you can execute your code and reset the timer. If you want to directly use the ke_timer_set check your other posthttp://support.dialog-semiconductor.com/apptimerset-0.

谢谢你的对话

prasanth.velliy...
离线
最后一次见到:1年10个月前
已加入:2016-02-18 12:18
我没有被触发

我没有被触发timer upon connection?? actually i am calling - periodical_data_timer_handler(); - function inside - void user_ble_pull (bool init, bool success) ... could you please suggest me where i have to put the - periodical_data_timer_handler(); - call function in DSPS device project ?? it would be great if you give me working example code...

MT\u对话框
离线
最后一次见到:2个月1周前
工作人员
已加入:2015-06-08 11:34
嗨,普拉桑,

嗨,普拉桑,

You have to establish a connection in order to start sending notifications to a central, without a connection i dont see how this is possible. So connect to a central and start a timer, when the handler triggers you will send a notification via user_send_ble_data and you will reset the timer. The preriodical_data_timer_handler() is just a handler, when you start a timer with that callback, that callback will be executed when time elapses.

谢谢你的对话