|
@@ -109,6 +109,7 @@ int pico_server_dispatcher::pico_set_points()
|
|
|
|
|
|
|
|
this->points_vector = oh.get().as<std::vector<uint32_t>>();
|
|
this->points_vector = oh.get().as<std::vector<uint32_t>>();
|
|
|
this->points_value = *(std::max_element(points_vector.begin(), points_vector.end()));
|
|
this->points_value = *(std::max_element(points_vector.begin(), points_vector.end()));
|
|
|
|
|
+ this->measurement_times = points_vector.size();
|
|
|
|
|
|
|
|
pk_ptr->pack(magic_number);
|
|
pk_ptr->pack(magic_number);
|
|
|
pk_ptr->pack(0xCC);
|
|
pk_ptr->pack(0xCC);
|
|
@@ -126,7 +127,7 @@ int pico_server_dispatcher::pico_set_times()
|
|
|
return -1;
|
|
return -1;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- this->sample_rate = oh.get().as<uint32_t>();
|
|
|
|
|
|
|
+ this->measurement_times = oh.get().as<uint32_t>();
|
|
|
|
|
|
|
|
pk_ptr->pack(magic_number);
|
|
pk_ptr->pack(magic_number);
|
|
|
pk_ptr->pack(0xCC);
|
|
pk_ptr->pack(0xCC);
|
|
@@ -420,15 +421,21 @@ std::vector<std::vector<int16_t>> pico_server_dispatcher::split_packets(int i, i
|
|
|
|
|
|
|
|
int pico_server_dispatcher::pico_send_points()
|
|
int pico_server_dispatcher::pico_send_points()
|
|
|
{
|
|
{
|
|
|
|
|
+ logger << "Sending points" << endl;
|
|
|
for(uint32_t i = 0; i < measurement_times; ++i)
|
|
for(uint32_t i = 0; i < measurement_times; ++i)
|
|
|
{
|
|
{
|
|
|
for(uint32_t j = 0; j < number_channels; ++j)
|
|
for(uint32_t j = 0; j < number_channels; ++j)
|
|
|
{
|
|
{
|
|
|
|
|
+ logger << "Spliting packets..." << endl;
|
|
|
std::vector<std::vector<int16_t>> packets = split_packets(i, j);
|
|
std::vector<std::vector<int16_t>> packets = split_packets(i, j);
|
|
|
|
|
+ logger << "Packets splited." << endl;
|
|
|
|
|
+
|
|
|
uint32_t num_packet = 1;
|
|
uint32_t num_packet = 1;
|
|
|
uint32_t total_data = sizeof(int16_t) * points_vector[i];
|
|
uint32_t total_data = sizeof(int16_t) * points_vector[i];
|
|
|
uint32_t total_packets = 1 + ((uint32_t) ((total_data * 1.0f) / MAX_PACKET));
|
|
uint32_t total_packets = 1 + ((uint32_t) ((total_data * 1.0f) / MAX_PACKET));
|
|
|
|
|
|
|
|
|
|
+ logger << "Ready to send data!" << endl;
|
|
|
|
|
+
|
|
|
for(std::vector<int16_t> packet : packets)
|
|
for(std::vector<int16_t> packet : packets)
|
|
|
{
|
|
{
|
|
|
pk_ptr->pack(magic_number);
|
|
pk_ptr->pack(magic_number);
|
|
@@ -455,7 +462,7 @@ int pico_server_dispatcher::pico_send_points()
|
|
|
|
|
|
|
|
if(command_code == 0x3D)
|
|
if(command_code == 0x3D)
|
|
|
{
|
|
{
|
|
|
- //logger << LogPref::Flag(INFO) << "Packet confirmed" << endl;
|
|
|
|
|
|
|
+ logger << LogPref::Flag(INFO) << "Packet confirmed" << endl;
|
|
|
}
|
|
}
|
|
|
else {
|
|
else {
|
|
|
sendErrorMsg(0x80000002, "Invalid confirm code!");
|
|
sendErrorMsg(0x80000002, "Invalid confirm code!");
|
|
@@ -467,6 +474,7 @@ int pico_server_dispatcher::pico_send_points()
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ logger << "Data sended! Wait confirmation." << endl;
|
|
|
pk_ptr->pack(magic_number);
|
|
pk_ptr->pack(magic_number);
|
|
|
pk_ptr->pack(0xCE);
|
|
pk_ptr->pack(0xCE);
|
|
|
|
|
|