IOT(服务器)到DSP(主机)数据传输

18个帖子/ 0新
最后一篇文章
prasanth.velliy ...
离线
最后一次见到:1年8个月前
已加入:2016-02-18 12:18
IOT(服务器)到DSP(主机)数据传输

Q1:我想将数据从IoT传感器设备发送到DA14580上的DSPS主机,如何进行?我要做的更改是什么?
Q2:同样的,我想把7.3.6节项目之后的定制profile-sample128撴的数据发送到运行在DA14580上的DSPS主机上,怎么做?
谢谢……对话

设备:
MT\u对话框
离线
最后一次见到:6天前1周
工作人员
已加入:2015-06-08 11:34
你好维利杨吉瑞,

你好维利杨吉瑞,

1.这些是不同的项目,所需的更改远非微小的修改,DSPS主机检查特定配置文件(DSP配置文件),因此您应该更改主机的服务发现操作并将其调整为IOT可用服务特征。发现服务后,可以在可用特征上启用通知,并且您可以按UART上通知您的数据。

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

谢谢你的对话

prasanth.velliy ...
离线
最后一次见到:1年8个月前
已加入:2016-02-18 12:18
问:如何创建自定义

问:如何为客户端角色创建自定义配置文件,搜索服务(Sample128_After第7.3.6.zip项目(@Server角色))连接到服务,查找特征并读取/写入特征?
我经历了rw-ble-gatt-is.doc。这个Doc只给出协议。所以,如果您提供的步骤教程,如自定义档案创作,那将是很棒的..谢谢你..!

MT\u对话框
离线
最后一次见到:6天前1周
工作人员
已加入:2015-06-08 11:34
你好维利杨吉瑞,

你好维利杨吉瑞,

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

谢谢你的对话

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

亲爱的Dialog
这些是我在第7.3.6节项目之后在DSPS HOST-sample128\u中所做的更改-@服务器角色
第1步:按照我的自定义配置文件服务和特征,在SPS_CLIER.H中介入UUID
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.
第2步:下一个凹陷
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对话框
离线
最后一次见到:6天前1周
工作人员
已加入:2015-06-08 11:34
嗨,普拉桑,

嗨,普拉桑,

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

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

谢谢你的对话

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

你能告诉我,当客户个人资料教程将可用时请告诉我?
谢谢对话框

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

嗨,普拉桑,

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

谢谢你的对话

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

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

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

嗨,普拉桑,

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

谢谢你的对话

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

msgstmm msgid,limemer
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;
req->conhdl=应用程序_环境控制;
KE_MSG_SEND(REQ);
}
我想在我们正在传输的数据的dsps设备项目中实现上述计时器处理程序,因此dsps设备项目会定期传输..如何做到这一点…我在-user\u sps\u server\u data\u tx\u cfm\u处理程序中尝试过-但似乎不起作用

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

嗨,普拉桑,

示例128使用不同的消息来触发比DSP项目的通知。您提到的函数发送示例128_upd_char2_req消息,DSP中没有处理此类消息的DSP中没有处理程序,因为DSP不支持此消息。您提到的处理程序处理SPS_SERVER_DATA_TX_CFM,该命令确认数据已放在TX缓冲区中。如果您希望设备定期发送数据,您可以在下面的帖子遵循http://support.dialog-semiconductor.com/dsps-panasonic-evalpan1740.

谢谢你的对话

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

亲爱的对话框,

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

void(* wrbl_timer_cb)();

uint16_t sensor_read_time;// vp.
uint16\u t传感器\u读取\u时间\u 1;//VP
uint16\u t传感器\u读取\u时间\u 2;//VP

wrbl_env_struct;

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

无效用户\u ble \u pull(bool init,bool success)
{
如果(init)
{
句号_data_timer_handler();
}
其他的
{
句号_data_timer_handler();
}
}

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

}

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

}

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

Q1:我在DSP设备项目的上面更改 - 代码在这里停止 - > if((getword16(sys_stat_reg)&dbg_is_up)== dbg_is_up)
__asm(“BKPT#0\n”);

有什么问题吗??我错过了什么??谢谢您。。

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

嗨,普拉桑,

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

谢谢你的对话

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

亲爱的Dialog
Q1:即使添加此功能后,我也没有发现传输中的任何延迟。你能帮我解决这个问题吗?
作废数据计时器处理程序(作废)
{
//静态单位长度;
//uint8\u t*p\u data=NULL;
user_send_ble_data(“别人”,6);
wrbl公司_环境传感器读取时间=app\u easy\u timer(20000,定期数据\u timer\u处理程序);

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

Q2:如果我想使用ke_timer_set();直接用于定期传输,如何在DSP设备项目中使用它?

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

嗨,普拉桑,

我没有得到这个问题,内核计时器没有触发?您可以使用ARCH_SET_PXACT_GPIO()并检查计时器是否已过度。我在新的DSP项目中测试了上面的代码,并在连接时触发定时器,它工作正常,我可以在手机应用程序上正确接收数据。

使用app_easy_timer()API,它使用KE_TIMER_SET(),并且当处理程序执行时,您可以执行代码并重置计时器。如果要直接使用ke_timer_set检查您的其他帖子http://support.dialog-semicondiondiondiondum/apptimerset-0..

谢谢你的对话

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

我没有得到 - 连接时触发计时器?实际上我正在打电话 - 句号 - _data_timer_handler();- 内部函数 - void user_ble_pull(bool init,bool成功)......你能否建议我在哪里放置 - 句号_data_timer_handler();- DSP设备项目中的呼叫功能?如果你给我工作的例子代码,那就太好了......

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

嗨,普拉桑,

您必须建立一个连接,以便开始向中央发送通知,而无需连接,我不会看到这是可能的。因此,连接到一个中央并启动计时器,当处理程序触发时,您将通过user_send_ble_data发送通知,并且您将重置计时器。preriodical_data_timer_handler()只是一个处理程序,当您使用该回调的计时器启动时,将在时间过去时执行回调。

谢谢你的对话