#include "message.hxx"\r
\r
-main(int argc, char **argv)\r
+void dumpmessage(string msg)\r
{\r
- FGMPSMessageBuf buf1, buf2;\r
-\r
- buf1.clr();\r
- buf1.put(fgmps_som8, true);\r
- buf1.put(1);\r
- for (int i=0; i<256; i++) {\r
- buf1.put(fgmps_uchar, true);\r
- buf1.put(i);\r
- }\r
- buf1.put(fgmps_eom, true);\r
+ FGMPSMessageBuf buf;\r
\r
- buf2.set(buf1.str());\r
+ buf.set(msg);\r
+ buf.ofs(0);\r
\r
bool done=false;\r
while (!done) {\r
double vald;\r
string vals;\r
printf("dump: ");\r
- for (int i=0; i<16; i++) printf("%02x ", buf2.peek(i));\r
+ for (int i=0; i<16; i++) printf("%02x ", buf.peek(i));\r
printf("\n");\r
try {\r
- int tag = buf2.get(true);\r
+ int tag = buf.get(true);\r
switch (tag) {\r
case fgmps_som8:\r
- mid8 = *(unsigned char *)buf2.read1();\r
+ mid8 = *(unsigned char *)buf.read1();\r
printf("Start Message ID = %02x\n", mid8);\r
break;\r
case fgmps_som16:\r
- mid16 = *(unsigned int *)buf2.read2();\r
+ mid16 = *(unsigned int *)buf.read2();\r
printf("Start Message ID = %04x\n", mid16);\r
break;\r
case fgmps_eom:\r
done = true;\r
break;\r
case fgmps_uchar:\r
- uval8 = *(unsigned char *)buf2.read1();\r
+ uval8 = *(unsigned char *)buf.read1();\r
printf("uchar = %02x\n", uval8);\r
break;\r
case fgmps_uint:\r
- uval16 = *(unsigned int *)buf2.read2();\r
+ uval16 = *(unsigned int *)buf.read2();\r
printf("uint = %04x\n", uval16);\r
break;\r
case fgmps_ulong:\r
- uval32 = *(unsigned long *)buf2.read4();\r
+ uval32 = *(unsigned long *)buf.read4();\r
printf("ulong = %08lx\n", uval32);\r
break;\r
case fgmps_ulonglong:\r
- uval64 = *(unsigned long long *)buf2.read8();\r
+ uval64 = *(unsigned long long *)buf.read8();\r
printf("ulonglong = %16llx\n", uval64);\r
break;\r
+ case fgmps_char:\r
+ val8 = *(char *)buf.read1();\r
+ printf("char = %02x\n", val8);\r
+ break;\r
+ case fgmps_int:\r
+ val16 = *(int *)buf.read2();\r
+ printf("int = %04x\n", val16);\r
+ break;\r
+ case fgmps_long:\r
+ val32 = *(long *)buf.read4();\r
+ printf("long = %08lx\n", val32);\r
+ break;\r
+ case fgmps_longlong:\r
+ val64 = *(long long *)buf.read8();\r
+ printf("longlong = %16llx\n", val64);\r
+ break;\r
+ case fgmps_float:\r
+ valf = buf.readf();\r
+ printf("float = %f\n", valf);\r
+ break;\r
+ case fgmps_double:\r
+ vald = buf.readd();\r
+ printf("double = %g\n", vald);\r
+ break;\r
+ case fgmps_string:\r
+ uval8 = buf.get();\r
+ vals = buf.reads(uval8);\r
+ printf("string = %s\n", vals.c_str());\r
+ break;\r
default:\r
printf("Unknown prefix = %02x\n", tag);\r
done = true;\r
break;\r
}\r
} catch (FGMPSDataException e) {\r
+ printf("Data Exception\n");\r
done = true;\r
}\r
}\r
}\r
+\r
+main(int argc, char **argv)\r
+{\r
+ FGMPSMessageBuf buf;\r
+\r
+ unsigned char uval8;\r
+ unsigned int uval16;\r
+ unsigned long uval32;\r
+ unsigned long long uval64;\r
+ char val8;\r
+ int val16;\r
+ long val32;\r
+ long long val64;\r
+ float valf;\r
+ double vald;\r
+ string vals;\r
+\r
+ buf.clr();\r
+ buf.put(fgmps_som8, true);\r
+ buf.put(1);\r
+ for (int i=0; i<256; i++) {\r
+ buf.put(fgmps_uchar, true);\r
+ buf.put(i);\r
+ }\r
+ buf.put(fgmps_eom, true);\r
+ dumpmessage(buf.str());\r
+\r
+ buf.clr();\r
+ buf.put(fgmps_som8, true); buf.put(1);\r
+\r
+ uval8 = 251; buf.put(fgmps_uchar, true); buf.write1(&uval8);\r
+ uval16 = 34567; buf.put(fgmps_uint, true); buf.write2(&uval16);\r
+ uval32 = 1345678901; buf.put(fgmps_ulong, true); buf.write4(&uval32);\r
+ //uval64 = 9999999999; buf.put(fgmps_ulonglong, true); buf.write8(&uval64);\r
+ val8 = -120; buf.put(fgmps_char, true); buf.write1(&val8);\r
+ val16 = -17890; buf.put(fgmps_int, true); buf.write2(&val16);\r
+ val32 = -1345678901; buf.put(fgmps_long, true); buf.write4(&val32);\r
+ //val64 = -9999999999; buf.put(fgmps_longlong, true); buf.write8(&val64);\r
+ valf = 2 * 3.14; buf.put(fgmps_float, true); buf.writef(valf);\r
+ vald = 3 * 3.1415927; buf.put(fgmps_double, true); buf.writed(vald);\r
+ vals = "hi there"; buf.put(fgmps_string, true); buf.writes(vals);\r
+ buf.put(fgmps_eom, true);\r
+ dumpmessage(buf.str());\r
+}\r