message PB_ARLabel { bytes id = 1;//添加的时候不需要赋值 bytes name = 2; bytes cam_guid = 3;//所属摄像机GUID 所属通道id repeated PB_ARPosition position = 4;//原始位置(屏幕展示不需要) repeated PB_ARPosition position_on_screen = 5;//屏幕位置(屏幕显示用) int32 coordinate_type = 6;//坐标类型,1 pt坐标,2 经纬度坐标 double distance = 7;//距离(标签离摄像机的距离) int32 layer = 8;//标签所在层级 int32 label_type = 9;//@SEE ARLabelType bytes obj_id = 10;//label所对应的事物(设备 地理位置)的ID,比如门的ID 摄像机的ID 传感器的ID 等 bytes info = 11;//标签的详细信息 } 代码生成一组有意义的随机数随,Qt cpp源码实现
时间: 2024-02-05 12:05:07 浏览: 58
您好!根据您的要求,我可以生成一组有意义的随机数,并提供Qt cpp的实现。以下是实现代码:
```cpp
#include <QtGlobal>
#include <QDateTime>
#include "pb_arlabel.pb.h"
PB_ARLabel getRandomARLabel() {
PB_ARLabel label;
// 生成随机的id
QByteArray id;
for (int i = 0; i < 8; i++) {
id.append(qrand() % 256);
}
label.set_id(id);
// 生成随机的name
QString name = QString("Label %1-%2").arg(qrand() % 10).arg(QDateTime::currentDateTime().toString("yyyyMMddhhmmsszzz"));
label.set_name(name.toUtf8().constData());
// 生成随机的cam_guid
QByteArray cam_guid;
for (int i = 0; i < 8; i++) {
cam_guid.append(qrand() % 256);
}
label.set_cam_guid(cam_guid);
// 生成随机的position和position_on_screen
for (int i = 0; i < 2; i++) {
PB_ARPosition pos;
pos.set_x(qrand() % 1000);
pos.set_y(qrand() % 1000);
label.add_position()->CopyFrom(pos);
label.add_position_on_screen()->CopyFrom(pos);
}
// 生成随机的coordinate_type和distance
int coordinate_type = qrand() % 2 + 1;
double distance = (double)(qrand() % 10000) / 10.0;
label.set_coordinate_type(coordinate_type);
label.set_distance(distance);
// 生成随机的layer和label_type
int layer = qrand() % 5 + 1;
int label_type = qrand() % 3 + 1;
label.set_layer(layer);
label.set_label_type(label_type);
// 生成随机的obj_id
QByteArray obj_id;
for (int i = 0; i < 8; i++) {
obj_id.append(qrand() % 256);
}
label.set_obj_id(obj_id);
// 生成随机的info
QString info = QString("This is a test label for %1.").arg(name);
label.set_info(info.toUtf8().constData());
return label;
}
```
以上代码使用Qt的qrand()函数生成随机数,并使用QDateTime::currentDateTime()函数获取当前时间,以生成有意义的随机数。函数getRandomARLabel()返回一个随机生成的PB_ARLabel对象。
阅读全文