Commit ca7c7561 authored by Giuseppe Carboni's avatar Giuseppe Carboni
Browse files

Minor fixes for SRTMinorServoCommandLibrary

parent 58c24354
Loading
Loading
Loading
Loading
+4 −8
Original line number Diff line number Diff line
@@ -115,15 +115,11 @@ SRTMinorServoAnswerMap SRTMinorServoCommandLibrary::parseAnswer(std::string answ
            if(value.empty())
            {
                if(args.find("TIMESTAMP") != args.end())    // Timestamp already found, some other value is missing
                {
                    value = "0";
                }
                else
                {
                    throw std::invalid_argument(std::string("Missing key for value " + value));

                value = key;
                key = "TIMESTAMP";
            }
            }

            if(key == "OUTPUT")
            {
+15 −14
Original line number Diff line number Diff line
@@ -28,28 +28,29 @@ TEST(SRTMinorServoCommandLibraryTest, stop)

TEST(SRTMinorServoCommandLibraryTest, preset)
{
    EXPECT_EQ(SRTMinorServoCommandLibrary::preset("PFP", std::vector<double>{0.,1.,2.,3.,4.,5.}), "PRESET=PFP,0,1,2,3,4,5\r\n");
    EXPECT_EQ(SRTMinorServoCommandLibrary::preset("PFP", std::vector<double>{0.,1.,2.,3.,4.,5.}), "PRESET=PFP,0.000000,1.000000,2.000000,3.000000,4.000000,5.000000\r\n");
}

TEST(SRTMinorServoCommandLibraryTest, programTrack)
{
    double start_time = CIRATools::getUNIXEpoch() + 3;
    unsigned long int trajectory_id = (unsigned long int)(start_time * 1000);
    unsigned long int trajectory_id = (unsigned long int)start_time;
    std::stringstream expected_answer;
    expected_answer << "PROGRAMTRACK=PFP," << trajectory_id << ",0," << trajectory_id << ",0,1,2,3,4,5\r\n";
    expected_answer << std::fixed << std::setprecision(6);
    expected_answer << "PROGRAMTRACK=PFP," << trajectory_id << ",0," << start_time << ",0.000000,1.000000,2.000000,3.000000,4.000000,5.000000\r\n";
    EXPECT_EQ(SRTMinorServoCommandLibrary::programTrack("PFP", trajectory_id, 0, std::vector<double>{0.,1.,2.,3.,4.,5.}, start_time), expected_answer.str());

    for(unsigned int i = 1; i < 10; i++)
    {
        expected_answer.str(std::string());
        expected_answer << "PROGRAMTRACK=PFP," << trajectory_id << "," << i << ",*,0,1,2,3,4,5\r\n";
        expected_answer << "PROGRAMTRACK=PFP," << trajectory_id << "," << i << ",*,0.000000,1.000000,2.000000,3.000000,4.000000,5.000000\r\n";
        EXPECT_EQ(SRTMinorServoCommandLibrary::programTrack("PFP", trajectory_id, i, std::vector<double>{0.,1.,2.,3.,4.,5.}), expected_answer.str());
    }
}

TEST(SRTMinorServoCommandLibraryTest, offset)
{
    EXPECT_EQ(SRTMinorServoCommandLibrary::offset("PFP", std::vector<double>{0.,1.,2.,3.,4.,5.}), "OFFSET=PFP,0,1,2,3,4,5\r\n");
    EXPECT_EQ(SRTMinorServoCommandLibrary::offset("PFP", std::vector<double>{0.,1.,2.,3.,4.,5.}), "OFFSET=PFP,0.000000,1.000000,2.000000,3.000000,4.000000,5.000000\r\n");
}

TEST(SRTMinorServoCommandLibraryTest, parseAnswer)
@@ -66,15 +67,15 @@ TEST(SRTMinorServoCommandLibraryTest, parseAnswer)
    args.clear();
    args["OUTPUT"] = "GOOD";
    args["TIMESTAMP"] = 1665743366.123456;
    args["CURRENT_CONFIG"] = 21;
    args["SIMULATION_ENABLED"] = 34;
    args["PLC_TIME"] = 78;
    args["PLC_VERSION"] = 69;
    args["CONTROL"] = 14;
    args["POWER"] = 38;
    args["EMERGENCY"] = 69;
    args["ENABLED"] = 51;
    args["OPERATIVE_MODE"] = 94;
    args["CURRENT_CONFIG"] = (long)21;
    args["SIMULATION_ENABLED"] = (long)34;
    args["PLC_TIME"] = (long)78;
    args["PLC_VERSION"] = (long)69;
    args["CONTROL"] = (long)14;
    args["POWER"] = (long)38;
    args["EMERGENCY"] = (long)69;
    args["ENABLED"] = (long)51;
    args["OPERATIVE_MODE"] = (long)94;
    EXPECT_EQ(SRTMinorServoCommandLibrary::parseAnswer(answer), args);

    // Missing timestamp