8 #include "gtest/gtest.h"
25 ASSERT_NE(
nullptr, pResourceManager);
26 ASSERT_NE(
nullptr, pTHM1176);
27 ASSERT_EQ(
true, pTHM1176->IsOpen());
28 ASSERT_EQ(
true, pTHM1176->
Reset());
35 delete pResourceManager;
36 pResourceManager =
nullptr;
49 l_DisableMask.
RawSTB = 0xff;
52 ASSERT_EQ(
true, pTHM1176->Write(
"*SRE?") && pTHM1176->Read(l_ReadBuffer));
53 EXPECT_EQ(
"4\n", std::string(l_ReadBuffer.
begin(), l_ReadBuffer.
end()));
55 l_DisableMask = l_EnableMask;
56 l_EnableMask.
RawSTB = 0x00;
59 ASSERT_EQ(
true, pTHM1176->Write(
"*SRE?") && pTHM1176->Read(l_ReadBuffer));
60 EXPECT_EQ(
"8\n", std::string(l_ReadBuffer.
begin(), l_ReadBuffer.
end()));
62 l_DisableMask = l_EnableMask;
63 l_EnableMask.
RawSTB = 0x00;
66 ASSERT_EQ(
true, pTHM1176->Write(
"*SRE?") && pTHM1176->Read(l_ReadBuffer));
67 EXPECT_EQ(
"16\n", std::string(l_ReadBuffer.
begin(), l_ReadBuffer.
end()));
69 l_DisableMask = l_EnableMask;
70 l_EnableMask.
RawSTB = 0x00;
73 ASSERT_EQ(
true, pTHM1176->Write(
"*SRE?") && pTHM1176->Read(l_ReadBuffer));
74 EXPECT_EQ(
"32\n", std::string(l_ReadBuffer.
begin(), l_ReadBuffer.
end()));
76 l_DisableMask = l_EnableMask;
77 l_EnableMask.
RawSTB = 0x00;
80 ASSERT_EQ(
true, pTHM1176->Write(
"*SRE?") && pTHM1176->Read(l_ReadBuffer));
81 EXPECT_EQ(
"0\n", std::string(l_ReadBuffer.
begin(), l_ReadBuffer.
end()));
83 l_DisableMask = l_EnableMask;
84 l_EnableMask.
RawSTB = 0x00;
87 ASSERT_EQ(
true, pTHM1176->Write(
"*SRE?") && pTHM1176->Read(l_ReadBuffer));
88 EXPECT_EQ(
"128\n", std::string(l_ReadBuffer.
begin(), l_ReadBuffer.
end()));
90 l_DisableMask = l_EnableMask;
91 l_EnableMask.
RawSTB = 0x00;
93 ASSERT_EQ(
true, pTHM1176->Write(
"*SRE?") && pTHM1176->Read(l_ReadBuffer));
94 EXPECT_EQ(
"0\n", std::string(l_ReadBuffer.
begin(), l_ReadBuffer.
end()));
98 l_DisableMask.
RawSE = 0xff;
101 ASSERT_EQ(
true, pTHM1176->Write(
"*ESE?") && pTHM1176->Read(l_ReadBuffer));
102 EXPECT_EQ(
"1\n", std::string(l_ReadBuffer.
begin(), l_ReadBuffer.
end()));
104 l_DisableMask = l_EnableMask;
105 l_EnableMask.
RawSE = 0x00;
108 ASSERT_EQ(
true, pTHM1176->Write(
"*ESE?") && pTHM1176->Read(l_ReadBuffer));
109 EXPECT_EQ(
"4\n", std::string(l_ReadBuffer.
begin(), l_ReadBuffer.
end()));
111 l_DisableMask = l_EnableMask;
112 l_EnableMask.
RawSE = 0x00;
115 ASSERT_EQ(
true, pTHM1176->Write(
"*ESE?") && pTHM1176->Read(l_ReadBuffer));
116 EXPECT_EQ(
"8\n", std::string(l_ReadBuffer.
begin(), l_ReadBuffer.
end()));
118 l_DisableMask = l_EnableMask;
119 l_EnableMask.
RawSE = 0x00;
122 ASSERT_EQ(
true, pTHM1176->Write(
"*ESE?") && pTHM1176->Read(l_ReadBuffer));
123 EXPECT_EQ(
"16\n", std::string(l_ReadBuffer.
begin(), l_ReadBuffer.
end()));
125 l_DisableMask = l_EnableMask;
126 l_EnableMask.
RawSE = 0x00;
129 ASSERT_EQ(
true, pTHM1176->Write(
"*ESE?") && pTHM1176->Read(l_ReadBuffer));
130 EXPECT_EQ(
"32\n", std::string(l_ReadBuffer.
begin(), l_ReadBuffer.
end()));
132 l_DisableMask = l_EnableMask;
133 l_EnableMask.
RawSE = 0x00;
136 ASSERT_EQ(
true, pTHM1176->Write(
"*ESE?") && pTHM1176->Read(l_ReadBuffer));
137 EXPECT_EQ(
"128\n", std::string(l_ReadBuffer.
begin(), l_ReadBuffer.
end()));
139 l_DisableMask = l_EnableMask;
140 l_EnableMask.
RawSE = 0x00;
142 ASSERT_EQ(
true, pTHM1176->Write(
"*ESE?") && pTHM1176->Read(l_ReadBuffer));
143 EXPECT_EQ(
"0\n", std::string(l_ReadBuffer.
begin(), l_ReadBuffer.
end()));
147 l_DisableMask.
RawOPER = 0xffff;
150 ASSERT_EQ(
true, pTHM1176->Write(
":STAT:QUES:ENAB?") && pTHM1176->Read(l_ReadBuffer));
151 EXPECT_EQ(
"1\n", std::string(l_ReadBuffer.
begin(), l_ReadBuffer.
end()));
153 l_DisableMask = l_EnableMask;
157 ASSERT_EQ(
true, pTHM1176->Write(
":STAT:QUES:ENAB?") && pTHM1176->Read(l_ReadBuffer));
158 EXPECT_EQ(
"4\n", std::string(l_ReadBuffer.
begin(), l_ReadBuffer.
end()));
160 l_DisableMask = l_EnableMask;
164 ASSERT_EQ(
true, pTHM1176->Write(
":STAT:QUES:ENAB?") && pTHM1176->Read(l_ReadBuffer));
165 EXPECT_EQ(
"16\n", std::string(l_ReadBuffer.
begin(), l_ReadBuffer.
end()));
167 l_DisableMask = l_EnableMask;
171 ASSERT_EQ(
true, pTHM1176->Write(
":STAT:QUES:ENAB?") && pTHM1176->Read(l_ReadBuffer));
172 EXPECT_EQ(
"32\n", std::string(l_ReadBuffer.
begin(), l_ReadBuffer.
end()));
174 l_DisableMask = l_EnableMask;
177 ASSERT_EQ(
true, pTHM1176->Write(
":STAT:QUES:ENAB?") && pTHM1176->Read(l_ReadBuffer));
178 EXPECT_EQ(
"0\n", std::string(l_ReadBuffer.
begin(), l_ReadBuffer.
end()));
182 l_DisableMask.
RawQUES = 0xffff;
185 ASSERT_EQ(
true, pTHM1176->Write(
":STAT:OPER:ENAB?") && pTHM1176->Read(l_ReadBuffer));
186 EXPECT_EQ(
"32\n", std::string(l_ReadBuffer.
begin(), l_ReadBuffer.
end()));
188 l_DisableMask = l_EnableMask;
192 ASSERT_EQ(
true, pTHM1176->Write(
":STAT:OPER:ENAB?") && pTHM1176->Read(l_ReadBuffer));
193 EXPECT_EQ(
"512\n", std::string(l_ReadBuffer.
begin(), l_ReadBuffer.
end()));
195 l_DisableMask = l_EnableMask;
198 ASSERT_EQ(
true, pTHM1176->Write(
":STAT:OPER:ENAB?") && pTHM1176->Read(l_ReadBuffer));
199 EXPECT_EQ(
"0\n", std::string(l_ReadBuffer.
begin(), l_ReadBuffer.
end()));
212 ASSERT_EQ(
true, pTHM1176->StatusSetEnableRegister(
kStatusByte, 0xff, 0x01));
218 EXPECT_EQ(0x01, l_StatusByte.
RawSTB);
220 EXPECT_EQ(0x02, l_StandardEvent.
RawSE);
222 EXPECT_EQ(0x04, l_Operation.
RawOPER);
224 EXPECT_EQ(0x08, l_Questionable.
RawQUES);
226 ASSERT_EQ(
true, pTHM1176->StatusSetEnableRegister(
kStatusByte, 0xff, 0x00));
232 EXPECT_EQ(0x00, l_StatusByte.
RawSTB);
234 EXPECT_EQ(0x00, l_StandardEvent.
RawSE);
236 EXPECT_EQ(0x00, l_Operation.
RawOPER);
238 EXPECT_EQ(0x00, l_Questionable.
RawQUES);
241 std::string l_Command =
"*RST;*CLS;*ESE 8;:STAT:OPER:ENAB 16;:STAT:QUES:ENAB 32;:SENS:AUTO 0;UPP MAX;:TRIG:SOUR TIM;TIM MIN;COUN 2;:AVER:COUN 10;:INIT;*OPC";
242 ASSERT_EQ(
true, pTHM1176->Write(l_Command));
250 EXPECT_EQ(0, l_Operation.
RawOPER);
252 std::vector<sError> l_ErrorList = pTHM1176->CurrentErrorList();
253 EXPECT_EQ(1, l_ErrorList.size());
254 EXPECT_EQ(206, l_ErrorList[0].Code);
255 EXPECT_EQ(
"Timer was overrun", l_ErrorList[0].Description);
256 EXPECT_EQ(
":STAT:OPER:COND?", l_ErrorList[0].Context);
259 EXPECT_EQ(0, l_Questionable.
RawQUES);
296 ASSERT_EQ(
true, pTHM1176->StatusSetEnableRegister(
kStatusByte, 0xff, 0x01));
308 ASSERT_EQ(
true, pTHM1176->StatusGet(l_Registers, l_Status));
309 EXPECT_EQ(4, l_Status.size());
310 EXPECT_EQ(0x01, l_Status[0]);
311 EXPECT_EQ(0x02, l_Status[1]);
312 EXPECT_EQ(0x04, l_Status[2]);
313 EXPECT_EQ(0x08, l_Status[3]);
315 ASSERT_EQ(
true, pTHM1176->StatusSetEnableRegister(
kStatusByte, 0xff, 0x00));
320 ASSERT_EQ(
true, pTHM1176->StatusGet(l_Registers, l_Status));
321 EXPECT_EQ(4, l_Status.size());
322 EXPECT_EQ(0x00, l_Status[0]);
323 EXPECT_EQ(0x00, l_Status[1]);
324 EXPECT_EQ(0x00, l_Status[2]);
325 EXPECT_EQ(0x00, l_Status[3]);
328 std::string l_Command =
"*RST;*CLS;*ESE 8;:STAT:OPER:ENAB 16;:STAT:QUES:ENAB 32;:SENS:AUTO 0;UPP MAX;:TRIG:SOUR TIM;TIM MIN;COUN 2;:AVER:COUN 10;:INIT;*OPC";
329 ASSERT_EQ(
true, pTHM1176->Write(l_Command));
339 ASSERT_EQ(
false, pTHM1176->StatusGet(l_Registers, l_Status));
346 ASSERT_EQ(
true, pTHM1176->StatusGet(l_Registers, l_Status));
347 EXPECT_EQ(2, l_Status.size());
348 EXPECT_EQ(0x00, l_Status[0]);
349 EXPECT_EQ(0x00, l_Status[1]);
351 std::vector<sError> l_ErrorList = pTHM1176->CurrentErrorList();
352 EXPECT_EQ(1, l_ErrorList.size());
353 EXPECT_EQ(206, l_ErrorList[0].Code);
354 EXPECT_EQ(
"Timer was overrun", l_ErrorList[0].Description);
355 EXPECT_EQ(
":STAT:OPER:COND?;:STAT:QUES:COND?", l_ErrorList[0].Context);
365 ASSERT_EQ(
true, pTHM1176->StatusGet(l_Registers, l_Status));
366 EXPECT_EQ(4, l_Status.size());
369 l_StatusByte.
RawSTB = l_Status[0];
378 l_StandardEvent.
RawSE = l_Status[1];
387 l_Operation.
RawOPER = l_Status[2];
394 l_Questionable.
RawQUES = l_Status[3];
405 ASSERT_EQ(
true, pTHM1176->StatusPreset());
413 ASSERT_EQ(
true, pTHM1176->StatusGet(l_Registers, l_Status));
414 EXPECT_EQ(2, l_Status.size());
415 EXPECT_EQ(0x00, l_Status[0]);
416 EXPECT_EQ(0x00, l_Status[1]);