15 namespace Instrument {
16 namespace PT2026Types {
20 return *
reinterpret_cast<const U16*
>(pBinary);
24 return *
reinterpret_cast<const I16*
>(pBinary);
28 return *
reinterpret_cast<const U32*
>(pBinary);
32 return *
reinterpret_cast<const I32*
>(pBinary);
36 return *
reinterpret_cast<const F32*
>(pBinary);
40 return *
reinterpret_cast<const U64*
>(pBinary);
44 const char Binary64_Out[8] = { pBinary[4], pBinary[5], pBinary[6], pBinary[7], pBinary[0], pBinary[1], pBinary[2], pBinary[3] };
45 return *
reinterpret_cast<const F64*
>(Binary64_Out);
49 if (SUnits ==
"T") rUnits =
kT;
50 else if (SUnits ==
"MT") rUnits =
kmT;
51 else if (SUnits ==
"GAUS") rUnits =
kGauss;
52 else if (SUnits ==
"KGAU") rUnits =
kkGauss;
53 else if (SUnits ==
"PPM") rUnits =
kppm;
54 else if (SUnits ==
"MAHZP") rUnits =
kMHzp;
55 else if (SUnits ==
"MAHZ") rUnits =
kMHz;
62 return Units ==
kT ?
"T" :
66 Units ==
kppm ?
"PPM" :
67 Units ==
kMHzp ?
"MAHZP" :
68 Units ==
kMHz ?
"MAHZ" :
"";
73 std::vector<std::string> l_Tokens;
75 if (l_Tokens.size() != 6)
78 std::vector<std::string> l_ChannelList;
80 if (l_ChannelList.empty())
82 for (
auto & ChanIt : l_ChannelList)
83 rExtChan.
Channel.push_back(
static_cast<unsigned char>(std::stoul(ChanIt)));
98 rExtChan.
Type = ( l_Tokens[1] ==
"SinglePulsed" ?
kPwProbe :
101 l_Tokens[1] ==
"CameraPulsed" ?
kPwCamera :
106 rExtChan.
Model = std::stoul(l_Tokens[2]);
110 rExtChan.
NoPorts =
static_cast<U8
>(std::stoul(l_Tokens[4]));
112 if (l_Tokens[5] ==
"1")
114 else if (l_Tokens[5] ==
"0")
123 for (
size_t l_beg = 0, l_end = 0; l_beg < SExtChanList.size() && l_end < SExtChanList.size(); )
125 l_beg = SExtChanList.find_first_of(
'(', l_end);
126 l_end = SExtChanList.find_first_of(
')', l_beg);
127 if (l_beg != std::string::npos && l_end > l_beg + 2)
131 rExtChanList.push_back(l_ExtChan);
150 unsigned char l_Binary16[2] = { 0x12, 0xF3 };
151 if (
BinaryToU16(
reinterpret_cast<char *
>(l_Binary16)) != 62226)
152 throw "Invalid U16 conversion";
153 if (
BinaryToI16(
reinterpret_cast<char *
>(l_Binary16)) != -3310)
154 throw "Invalid I16 conversion";
155 unsigned char l_Binary32[4] = { 0x12, 0x34, 0x56, 0xF7 };
156 if (
BinaryToU32(
reinterpret_cast<char *
>(l_Binary32)) != 4149621778)
157 throw "Invalid U32 conversion";
158 if (
BinaryToI32(
reinterpret_cast<char *
>(l_Binary32)) != -145345518)
159 throw "Invalid I32 conversion";
160 if (
BinaryToF32(
reinterpret_cast<char *
>(l_Binary32)) >= -4.34456E+33F - FLT_EPSILON &&
BinaryToF32(
reinterpret_cast<char *
>(l_Binary32)) <= -4.34456E+33F + FLT_EPSILON)
161 throw "Invalid F32 conversion";
162 unsigned char l_Binary64[8] = { 0x12, 0x34, 0x56, 0x78, 0x9A, 0xBC, 0xDE, 0xF1 };
163 if (
BinaryToU64(
reinterpret_cast<char *
>(l_Binary64)) != 17428574979600299026UL)
164 throw "Invalid U64 conversion";
165 if (
BinaryToF64(
reinterpret_cast<char *
>(l_Binary64)) >= 4.69198E+271 - DBL_EPSILON &&
BinaryToF64(
reinterpret_cast<char *
>(l_Binary64)) <= 4.69198E+271 + DBL_EPSILON)
166 throw "Invalid F64 conversion";
168 std::string l_SExChL(
"(1,Multiplexer,6026,6,4,0),(1!2,SinglePulsed,1226,57,0,1),(1!4,SinglePulsed,1226,0,0,1)");
170 throw "Invalid CExtendedChannelList conversion";
174 l_ExChan.
Model != 1226 ||
178 throw "Invalid CExtendedChannelList conversion";
180 catch (
const char * ErrorMsg)
182 COUT(
"Error! :" << ErrorMsg << std::endl);
185 COUT(MTL__FUNCTION_NAME__ <<
" Success" << std::endl);