File indexing completed on 2025-08-03 08:20:52
0001 #include "packet_w124.h"
0002
0003 Packet_w1::Packet_w1()
0004 {}
0005
0006
0007 Packet_w1::Packet_w1(PACKET_ptr packet_ptr)
0008 : Packet_A(packet_ptr)
0009 {
0010 }
0011
0012 Packet_w2::Packet_w2()
0013 {}
0014
0015 Packet_w2::Packet_w2(PACKET_ptr packet_ptr)
0016 : Packet_A(packet_ptr)
0017 {
0018 }
0019
0020 Packet_w4::Packet_w4()
0021 {
0022 }
0023
0024 Packet_w4::Packet_w4(PACKET_ptr packet_ptr)
0025 : Packet_A(packet_ptr)
0026 {
0027 }
0028
0029
0030
0031
0032
0033 void Packet_w1::dump(OSTREAM& out)
0034 {
0035 gdump(2,out);
0036 dumpErrorBlock(out);
0037 dumpDebugBlock(out);
0038 }
0039
0040 void Packet_w2::dump(OSTREAM& out)
0041 {
0042 gdump(2,out);
0043 dumpErrorBlock(out);
0044 dumpDebugBlock(out);
0045 }
0046
0047 void Packet_w4::dump(OSTREAM& out)
0048 {
0049 gdump(2,out);
0050 dumpErrorBlock(out);
0051 dumpDebugBlock(out);
0052 }
0053
0054
0055 void Packet_w4::gdump(const int i, OSTREAM& out) const
0056 {
0057 int j,l;
0058
0059 int * packetData = (int *) findPacketDataStart (packet);
0060
0061 if ( i == EVT_RAW)
0062 {
0063 fwrite(packetData, sizeof(int), getDataLength()-getPadding(), stdout);
0064 return;
0065 }
0066
0067 if ( i == EVT_RAW_WH)
0068 {
0069 fwrite(packet, sizeof(int), getLength(), stdout);
0070 return;
0071 }
0072
0073
0074 identify(out);
0075
0076 if (packetData == 0)
0077 {
0078 return;
0079 }
0080
0081 switch (i)
0082 {
0083 case (EVT_HEXADECIMAL):
0084 j = 0;
0085 while (1)
0086 {
0087 out << SETW(5) << j << " | ";
0088 for (l=0;l<4;l++)
0089 {
0090 out << std::hex << SETW(8) << packetData[j++] << " " ;
0091 if (j>=getDataLength()) break;
0092 }
0093 if (j>=getDataLength() ) break;
0094 out << std::dec<< std::endl;
0095 }
0096 out << std::dec<< std::endl;
0097 break;
0098
0099 case (EVT_DECIMAL):
0100 j = 0;
0101 while (1)
0102 {
0103 out << std::dec << SETW(5) << j << " | ";
0104
0105 for (l=0;l<6;l++)
0106 {
0107 out << SETW(10) << packetData[j++] << " ";
0108 if (j>=getDataLength() ) break;
0109 }
0110 if (j>=getDataLength() ) break;
0111 out << std::endl;
0112 }
0113 out << std::dec<< std::endl;
0114 break;
0115
0116 default:
0117 break;
0118 }
0119 out << std::dec << std::endl << std::endl;
0120
0121 }
0122
0123
0124
0125 void Packet_w2::gdump(const int i, OSTREAM& out) const
0126 {
0127 short * packetData = (short *) findPacketDataStart (packet);
0128
0129 if ( i == EVT_RAW)
0130 {
0131 fwrite(packetData, sizeof(short), getDataLength(), stdout);
0132 return;
0133 }
0134
0135 if ( i == EVT_RAW_WH)
0136 {
0137 fwrite(packet, sizeof(int), getLength(), stdout);
0138 return;
0139 }
0140
0141 identify(out);
0142 if (packetData == 0)
0143 {
0144 return;
0145 }
0146
0147
0148
0149
0150
0151
0152
0153 int j,l;
0154
0155 switch (i)
0156 {
0157 case (EVT_HEXADECIMAL):
0158 j = 0;
0159 while (1)
0160 {
0161 out << SETW(5) << j << " | ";
0162 for (l=0;l<8;l++)
0163 {
0164 out << std::hex << SETW(4) << packetData[j++] << " " ;
0165 if (j>=getDataLength() ) break;
0166 }
0167 if (j>=getDataLength() ) break;
0168 out << std::dec << std::endl;
0169 }
0170 out << std::dec << std::endl;
0171 break;
0172
0173 case (EVT_DECIMAL):
0174 j = 0;
0175 while (1)
0176 {
0177 out << SETW(5) << j << " | ";
0178 for (l=0;l<8;l++)
0179 {
0180 out << SETW(6) << packetData[j++] << " ";
0181 if (j>=getDataLength()) break;
0182 }
0183 if (j>=getDataLength() ) break;
0184 out << std::endl;
0185 }
0186 out << std::dec << std::endl;
0187 break;
0188
0189 default:
0190 break;
0191 }
0192 out << std::dec << std::endl << std::endl;
0193
0194 }
0195
0196
0197 void Packet_w1::gdump(const int i, OSTREAM& out) const
0198 {
0199
0200 char * packetData = (char *) findPacketDataStart (packet);
0201
0202 if ( i == EVT_RAW)
0203 {
0204 fwrite(packetData, sizeof(char), getDataLength(), stdout);
0205 return;
0206 }
0207
0208 if ( i == EVT_RAW_WH)
0209 {
0210 fwrite(packet, sizeof(int), getLength(), stdout);
0211 return;
0212 }
0213
0214 identify(out);
0215 if (packetData == 0)
0216 {
0217 return;
0218 }
0219
0220 int j,l;
0221 char cstring[20];
0222 char *c;
0223
0224 j = 0;
0225 switch (i)
0226 {
0227 case (EVT_HEXADECIMAL):
0228 while (1)
0229 {
0230 c = cstring;
0231 out << std::dec << SETW(5) << j << " | ";
0232 for (l=0;l<16;l++)
0233 {
0234 if (j < getDataLength() )
0235 {
0236 *c++ = packetData[j];
0237 out << std::hex << SETW(2) << packetData[j++] << " ";
0238 }
0239 else
0240 {
0241 *c++ = 0x20;
0242 out << std::dec << " ";
0243 }
0244 }
0245 *c = 0;
0246 out << " | " << cstring;
0247 if (j >= getDataLength() ) break;
0248 out << std::endl;
0249 }
0250 break;
0251
0252 case (EVT_DECIMAL):
0253 while (1)
0254 {
0255 c = cstring;
0256 out << std::dec << SETW(5) << j << " | ";
0257 for (l=0;l<12;l++)
0258 {
0259 if (j < getDataLength() )
0260 {
0261 *c++ = packetData[j];
0262 out << std::hex << SETW(4) << packetData[j++] << " ";
0263 }
0264 else
0265 {
0266 *c++ = 0x20;
0267 out << std::dec << " ";
0268 }
0269 }
0270 *c = 0;
0271 out << " | " << cstring;
0272 if (j >= getDataLength() ) break;
0273 out << std::endl;
0274 }
0275 break;
0276
0277 default: break;
0278 }
0279 out << std::dec << std::endl << std::endl;
0280 }