在QT中确定的已收到的字符串后,如何保存在数组中
How save in an array the following 100 received value after a determined received string in Qt
我是C 和QT中的新手。我想在收到字符串后的串行端口中保存在一个数组中:"数据"。我正在使用终端示例,因此串行ports正常工作。
The read function in the Example is the same:
void MainWindow::readData()
{
QByteArray data = serial->readAll();
console->putData(data);
}
如何修改它?谢谢!!!
如果您的手册发送数据,我建议您添加框架定界符的启动以及框架定界符和校验和校验的结尾。
QByteArray packet_storage;
只是将其声明为您声明串行的位置。 StartOfMessage and EndOfMessage
将取决于您的设备。我不知道你的传播是什么。希望您可以从设备的文档中找出您的发送内容。
至于我,我正在使用
enum Constants
{
StartOfMessage = 'x02', /* Value of byte that marks the start of a message */
EndOfMessage = 'x03', /* Value of byte that marks the end of a message */
CarridgeReturn = 'x0D', /* Carridge return is first byte of end of line */
LineFeed = 'x0A', /* Line feed is second byte of end of line */
NullChar = ' ' /* Null Character */
};
void MainWindow::readData()
{
// read all
QByteArray data = serial->readAll();
// store all read data packet_storage is a QByteArray
packet_storage.append(data);
int start_index = 0;
int end_index = 0;
// process packet if not empty
if(!packet_storage.isEmpty())
{
if( packet_storage.contains(StartOfMessage) && packet_storage.contains(EndOfMessage))
{
start_index = packet_storage.indexOf(StartOfMessage,0);
end_index = packet_storage.indexOf(EndOfMessage,0);
int length = 0;
for (int i=start_index; i <= end_index; i++)
{
length++;
}
// get data
QByteArray dt = packet_storage.mid(start_index,length);
// do your processing here.
// store in vector write to file etc.
processpacket(dt);
packet_storage.remove(start_index,dt.size());
}
}
}
相关文章:
- Mongodb c++驱动程序:如何查询元素的数组
- 将数组的地址分配给变量并删除
- 从C++本机插件更新Vector3数组
- lambda参数转换为constexpr技巧,然后获取带链接的数组
- 将数组作为参数传递给函数安全吗?作为第三方职能部门,可以探索他们想要的之外的其他元素
- 数组索引的值没有增加
- 将对象数组的引用传递给函数
- 如何从保存在 Java 中C++的字节数组中读取数字?
- C++:将数组传递给构造函数并将其保存在 this 对象中
- 如何拥有将数组保存在C 中的节点结构
- 动态对象数组在C++和Java中有何不同?
- 创建动态数组后,"i"变量不知从何而来
- 在 C++/CLI Visual Studio C++ 中以指定的数组位置将文本框中的值保存在 char 中
- 方向保存在int数组中的Wordsearch
- 这些数组类型有何不同
- 多线程程序,它将线程保存在vector而不是数组中
- 如果将char *数组保存在C中,如何比较它
- 在C++中,动态数组与静态绑定数组有何不同
- 需要将数组保留在L1缓存中的建议
- 初始化数组与错置内存有何不同?