问题描述
我正在开发一个Qt应用程序,该应用程序应该通过蓝牙从设备读取数据。该设备在收到特定命令后,开始以2500字节/秒的频率发送数据。
很明显,我的第一种方法是使用Qt qry = {
$or: [{
'organizationId.name' : {
$regex: name,$options : 'i'
}
},{
'LeadDetailsId.firstName' : {
$regex: name,$options: 'i'
}
},{
'LeadDetailsId.lastName': {
$regex: name,$options: 'i'
},},{
'assignedBy.name' : {
$regex: name,{
'assignedTo.name': {
$regex: name,{
'leadProgramId.name': {
$regex: name,$options: 'i'
}
}]
};
let leads = await lead.aggregate([
{
$lookup:
{
from: "401organizations",localField: "organizationId",foreignField: "_id",as: "organizationId"
}
},{ $unwind: { path: '$organizationId' } },{
$lookup: {
from: "401leaddetails",localField: "LeadDetailsId",as: "LeadDetailsId"
}
},{ $unwind: {path: '$LeadDetailsId'}},{
$lookup: {
from: "401leadactivityhistories",localField: "_id",foreignField: "leadId",as: "activityHistoryId"
}
},{
$lookup: {
from: "401leadstatuses",localField: "status",as: "status"
}
},{ $unwind: {path: '$status'}},localField: "subStatus",as: "subStatus"
}
},{$unwind: {path: "$subStatus"}},{
$lookup: {
from: "401staffs",localField: "assignedBy",as: "assignedBy"
}
},{ $unwind: {path: '$assignedBy'}},localField: "assignedTo",as: "assignedTo"
}
},{$unwind: {path: "$assignedTo"}},{
$lookup: {
from: "401leadappointments",foreignField: "LeadId",as: "appointmentId"
}
},{
$lookup: {
from: '401leadprograms',localField: "leadProgramId",as: "leadProgramId"
}
},{ $unwind: {path: "$leadProgramId"}},{$match: {
...qry,isDeleted: false
}}
]);
类,该类具有良好的信号和时隙机制,因此每次发送QBluetoothSocket
信号时我都可以读取数据。问题在于Qt的实现接收数据的速度非常慢,而我的应用程序的要求之一就是从接收到的数据中绘制实时图形,因此这是不可接受的。
结果是,我不得不不断地等待即将到来的数据,并且随着时间的推移,绘图工作会滞后很多。因此,我开始寻找另一种解决方案,现在我正尝试使用boost asio串行端口库来读取rfcomm。但是我不确定该怎么做。 现在,我设法与rfcomm建立连接并发送命令:
readyRead()
接下来我应该做的是重复读取数据并且没有阻塞,因此我应该使用auto bytes_written = boost::asio::write(port,boost::asio::buffer(command.c_str(),command.size()));
,在回调方法中我应该获取数据并再次使用async_read_some()
直到传输停止?我是朝着这个方向迈进还是有更好的方法?
谢谢。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)