RealtimeCompLab2

Dependencies:   mbed

Fork of PPP-Blinky by Nicolas Nackel

Revision:
42:4de44be70bfd
Parent:
41:e58a5a09f411
Child:
43:aa57db08995d
--- a/main.cpp	Mon Jan 09 08:13:40 2017 +0000
+++ b/main.cpp	Tue Jan 10 18:19:58 2017 +0000
@@ -32,10 +32,10 @@
 
 #ifndef SERIAL_PORT_MONITOR_NO
 Serial xx(PC_10, PC_11); // See debug messages on this port. Not necessary to work, but VERY interesting output!
-#define debug(x) xx.printf x
+#define debug(x...) xx.printf (x)
 #else
 // no debug monitoring
-#define debug(x) {}
+#define debug(x...) {}
 #endif
 
 Serial pc(USBTX, USBRX); // The serial port on your mbed hardware. Your PC thinks this is a dial-up modem.
@@ -179,7 +179,7 @@
         void determinePacketType(); // declaration only
         determinePacketType();
     } else if (v0) {
-        debug(("PPP FCS(crc) Error CRC=%x Length = %d\n",ppp.pkt.crc,ppp.pkt.len));
+        debug("PPP FCS(crc) Error CRC=%x Length = %d\n",ppp.pkt.crc,ppp.pkt.len);
     }
 }
 
@@ -188,8 +188,8 @@
 // In WireShark, use "Import Hex File". Options are: Offset=None, Protocol=PPP.
 void dumpFrame()
 {
-    for(int i=0; i<ppp.pkt.len; i++) debug(("%02x ", ppp.pkt.buf[i]));
-    debug((" C=%02x %02x L=%d\n", ppp.pkt.crc&0xff, (ppp.pkt.crc>>8)&0xff, ppp.pkt.len));
+    for(int i=0; i<ppp.pkt.len; i++) debug("%02x ", ppp.pkt.buf[i]);
+    debug(" C=%02x %02x L=%d\n", ppp.pkt.crc&0xff, (ppp.pkt.crc>>8)&0xff, ppp.pkt.len);
 }
 
 void hdlcPut(int ch)   // do hdlc handling of special (flag) characters
@@ -279,16 +279,16 @@
     char * dstIP = udpPkt+16; // udp dst addr
 #define UDP_HEADER_SIZE 8
     int udpLength = ((udpLen[0]<<8) | udpLen[1]) - UDP_HEADER_SIZE; // size of the actual udp data
-    if(v1) debug(("UDP %d.%d.%d.%d:%d ", srcIP[0],srcIP[1],srcIP[2],srcIP[3],srcPort));
-    if(v1) debug(("%d.%d.%d.%d:%d ",    dstIP[1],dstIP[1],dstIP[1],dstIP[1],dstPort));
-    debug(("Len %d ", udpLength));
+    if(v1) debug("UDP %d.%d.%d.%d:%d ", srcIP[0],srcIP[1],srcIP[2],srcIP[3],srcPort);
+    if(v1) debug("%d.%d.%d.%d:%d ",    dstIP[1],dstIP[1],dstIP[1],dstIP[1],dstPort);
+    debug("Len %d ", udpLength);
     int printSize = udpLength;
     if (printSize > 20) printSize = 20; // print only first 20 characters
     if (v0) {
         for (int i=0; i<printSize; i++) {
             char ch = udpInf[i];
             if (ch>31 && ch<127) {
-                debug(("%c", ch));
+                debug("%c", ch);
             } else {
                 debug(("_"));
             }
@@ -356,8 +356,8 @@
         char * dstAdr = ipPkt+16;
         int icmpIdent = (icmpType[4]<<8)|icmpType[5];
         int icmpSequence = (icmpType[6]<<8)|icmpType[7];
-        debug(("ICMP PING %d.%d.%d.d %d.%d.%d.%d ", srcAdr[0],srcAdr[1],srcAdr[2],srcAdr[3],dstAdr[0],dstAdr[1],dstAdr[2],dstAdr[3]));
-        debug(("Ident %04x Sequence %04d ",icmpIdent,icmpSequence));
+        debug("ICMP PING %d.%d.%d.d %d.%d.%d.%d ", srcAdr[0],srcAdr[1],srcAdr[2],srcAdr[3],dstAdr[0],dstAdr[1],dstAdr[2],dstAdr[3]);
+        debug("Ident %04x Sequence %04d ",icmpIdent,icmpSequence);
         char src[4];
         char dst[4];
         memcpy(src, srcAdr,4);
@@ -384,7 +384,7 @@
             for (int i=0; i<printSize; i++) {
                 char ch = icmpData[i];
                 if (ch>31 && ch<127) {
-                    debug(("%c",ch));
+                    debug("%c",ch);
                 } else {
                     debug(("_"));
                 }
@@ -395,7 +395,7 @@
 
     } else {
         if (v0) {
-            debug(("ICMP type=%d \n", icmpType[0]));
+            debug("ICMP type=%d \n", icmpType[0]);
         }
     }
 }
@@ -403,7 +403,7 @@
 void IGMPpacket()   // internet group management protocol
 {
     if (v0) {
-        debug(("IGMP type=%d \n", ppp.pkt.buf[28]));
+        debug("IGMP type=%d \n", ppp.pkt.buf[28]);
     }
 }
 
@@ -437,8 +437,8 @@
     snprintf(srcIP,16, "%d.%d.%d.%d", srcAdr[0],srcAdr[1],srcAdr[2],srcAdr[3]);
     char dstIP [16];
     snprintf(dstIP,16, "%d.%d.%d.%d", dstAdr[0],dstAdr[1],dstAdr[2],dstAdr[3]);
-    if (v0) debug(("IP %s %s v%d h%d d%d e%d L%d ",srcIP,dstIP,versionIP,headerSizeIP,dscpIP,ecnIP,packetLength));
-    if (v0) debug(("i%04x f%d t%d p%d C%04x\n",identIP,flagsIP,ttlIP,protocolIP,checksumIP));
+    if (v0) debug("IP %s %s v%d h%d d%d e%d L%d ",srcIP,dstIP,versionIP,headerSizeIP,dscpIP,ecnIP,packetLength);
+    if (v0) debug("i%04x f%d t%d p%d C%04x\n",identIP,flagsIP,ttlIP,protocolIP,checksumIP);
 }
 
 void dumpHeaderTCP()
@@ -465,7 +465,7 @@
     if (flags & (1<<8)) flagInfo[8]='N';
     flagInfo[9]=0; // null terminate string
     if (v0) {
-        debug(("Flags %s Seq %u Ack %u", flagInfo, seq, ack));
+        debug("Flags %s Seq %u Ack %u", flagInfo, seq, ack);
     }
 }
 
@@ -552,7 +552,7 @@
             int contentLength = dataLen-nHeader; // this is how to calculate Content-Length, but using curl -v is easier
             contentLength = contentLength+0; // get around unreferenced variable warning
             if (v0) {
-                debug(("HTTP GET dataLen %d*32=%d Header %d Content-Length %d Total %d Margin %d\n",dataLen/32,dataLen,nHeader,contentLength,n,dataLen-n));
+                debug("HTTP GET dataLen %d*32=%d Header %d Content-Length %d Total %d Margin %d\n",dataLen/32,dataLen,nHeader,contentLength,n,dataLen-n);
             }
         } else if ( strncmp(dataStart, "GET /", 4) == 0) { // all other HTTP GET requests get 404 Not Found response
             dataLen = 5*32; // block size for File not found webpage
@@ -567,7 +567,7 @@
             int contentLength = dataLen-nHeader; // this is how to calculate Content-Length, but using curl -v is easier
             contentLength = contentLength+0; // get around unreferenced variable warning
             if (v0) {
-                debug(("HTTP GET dataLen %d*32=%d Header %d Content-Length %d Total %d Margin %d\n",dataLen/32,dataLen,nHeader,contentLength,n,dataLen-n));
+                debug("HTTP GET dataLen %d*32=%d Header %d Content-Length %d Total %d Margin %d\n",dataLen/32,dataLen,nHeader,contentLength,n,dataLen-n);
             }
         } else {
             dataLen=0; // we did not find a valid HTTP request, so just ACK with zero data
@@ -653,10 +653,10 @@
     int headerSizeTCP = ((ppp.pkt.buf[4+ipHeaderLen+12]>>4)&0xf)*4;; // length of tcp header
     int dataLen = ipPktLen - ipHeaderLen - headerSizeTCP; // data is what's left after the two headers
     if (v1) {
-        debug(("TCP %d ipHeader %d tcpHeader %d Data %d\n", ipPktLen, ipHeaderLen, headerSizeTCP, dataLen));    // 1 for more verbose
+        debug("TCP %d ipHeader %d tcpHeader %d Data %d\n", ipPktLen, ipHeaderLen, headerSizeTCP, dataLen);    // 1 for more verbose
     }
     if (dataLen > 0) {
-        debug(("%s\n",ppp.pkt.buf+4+ipHeaderLen+headerSizeTCP));    // show the data
+        debug("%s\n",ppp.pkt.buf+4+ipHeaderLen+headerSizeTCP);    // show the data
     }
 }
 
@@ -691,10 +691,10 @@
     char dstIP [16];
     snprintf(dstIP,16, "%d.%d.%d.%d", dstAdr[0],dstAdr[1],dstAdr[2],dstAdr[3]);
     if (v0) {
-        debug(("IP %s %s v%d h%d d%d e%d L%d ",srcIP,dstIP,versionIP,headerSizeIP,dscpIP,ecnIP,packetLength));
+        debug("IP %s %s v%d h%d d%d e%d L%d ",srcIP,dstIP,versionIP,headerSizeIP,dscpIP,ecnIP,packetLength);
     }
     if (v0) {
-        debug(("i%04x f%d t%d p%d C%04x\n",identIP,flagsIP,ttlIP,protocolIP,checksumIP));
+        debug("i%04x f%d t%d p%d C%04x\n",identIP,flagsIP,ttlIP,protocolIP,checksumIP);
     }
     dumpHeaderTCP();
     dumpDataTCP();
@@ -784,7 +784,7 @@
 void discardedFrame()
 {
     if (v0) {
-        debug(("Dropping frame %02x %02x %02x %02x\n", ppp.pkt.buf[0],ppp.pkt.buf[1],ppp.pkt.buf[2],ppp.pkt.buf[3]));
+        debug("Dropping frame %02x %02x %02x %02x\n", ppp.pkt.buf[0],ppp.pkt.buf[1],ppp.pkt.buf[2],ppp.pkt.buf[3]);
     }
 }