我有一个从串口接收数据的类,我收到LDR仅测量1和0的开关量。
现在我想将它存储在一个类中,只要程序运行,我如何使用托管变量完成此操作?
请注意,串行类每秒运行一次,所以当我创建一个我现在使用的类时 StoreClass商店
Store.Value = LDR_Value; // LDR_Value is the value from the serial bus
当我这样做的时候,总会有一个StoreClass的副本被创建,但这并不能解决问题。
请帮帮我。
答案 0 :(得分:1)
如果我理解正确,您希望容器存储收到的所有值。如果您有一个名为StoreClass
的班级,则可以创建vector
成员并执行此操作:
class StoreClass
{
public:
void AddValue(int v) { m_values.push_back(v); }
private:
std::vector<int> m_values; // Stores all values in order of arrival.
}
现在您只需要一个班级实例:
int main()
{
StoreClass storage;
while(StillSerialInput())
{
storage.AddValue(GetSerialValue());
}
}
答案 1 :(得分:0)
如果要在容器中累积数据,请使用标准容器。我认为std::vector
足以成为你工作的好容器:
#include <vector>
using namespace std;
int main()
{
vector<DataType> dataReceived; //define data container
DataType buffer; //type of your data
while(recevingFromDevice) //loop that keeps running as long as you're receiving from your device
{
buffer = getDataFromDevice(); //buffer what you receive from the device
dataReceived.push_back(buffer); //add this buffer to the stack of data
}
//now dataReceived is an array with all received data
}