我的消息如下:
install.packages("qualityTools")
library(qualityTools)
x = rweibull(1000, 2, 8) + 1000
pcr(x, "weibull", lsl = 100, usl = 117)
我试图在我的c ++代码中初始化它,如下所示:
message Connected {
sint32 xloc = 1; // x spawn world position
sint32 yloc = 2; // y spawn world position
sint32 zrot = 3; // z spawn rotation
string sector = 4; // sector name (unsure about this)
string name = 5; // player name
string pid = 6; // player id
string scolor = 7; // ship color
string sname = 8; // ship name
}
由于某种原因,当我设置我的字符串参数时,之前的字符串被设置为该字符串值。因此,如果我执行set_pid,名称字段也将更改为pid。 set_scolor这个名字& pid将设置为s_color。 set_sname名称,pid& scolor会变成sname。看起来它们都共享相同的字符串指针字段位置。
每个字符串字段的结果将是" shipName"执行后。
我没有正确初始化我的消息吗?或者我需要在这里做些不同的事情吗?当我从编码流中序列化我的消息时,我得到了我预期的消息,但是手动创建似乎并不适用于我目前正在尝试做的事情。
非常感谢您提供的信息。
答案 0 :(得分:0)
更改为我的字符串使用重复字段似乎解决了问题。
active record collection
有了这个,我可以手动将新字符串添加到重复的字符串列表中。
message Connected {
sint32 xloc = 1; // x spawn world position
sint32 yloc = 2; // y spawn world position
sint32 zrot = 3; // z spawn rotation
// [0] => username
// [1] => userid
// [2] => shipcolor
// [3] => shipname
repeated string userinfo = 4;
}
它绝对允许使用更清晰的.proto文件,但奇怪的是,仅使用单个字符串会导致问题。