ccspi application reflexive jamming and reflexive jamming returning the jammed frame...
[goodfet] / client / GoodFETCCSPI.py
index 39fa181..78273ac 100644 (file)
@@ -84,7 +84,7 @@ class GoodFETCCSPI(GoodFET):
         """Write a CCSPI Register."""
         data=[reg,(val>>8)&0xFF,val&0xFF];
         self.writecmd(self.CCSPIAPP,0x03,len(data),data);
-        if self.peek(reg,bytes)!=val:
+        if self.peek(reg,bytes)!=val and reg!=0x18:
             print "Warning, failed to set r%02x=0x%04x, got %02x." %(
                 reg,
                 val,
@@ -186,6 +186,24 @@ class GoodFETCCSPI(GoodFET):
         #self.strobe(0x09);
         return;
     
+    def RF_reflexjam(self):
+        """Place the device into reflexive jamming mode."""
+        data = "";
+        self.writecmd(self.CCSPIAPP,0xA0,len(data),data);
+        return;
+
+    def RF_reflexjam_seq(self):
+        """Place the device into reflexive jamming mode
+           and return the sequence number of the jammed packet."""
+        #TODO make so that this function someone keeps receiving
+        #     the sequence numbers from each jammed frame, or probably
+        #     just make the firmware auto-ack if the frame requests
+        #     an ACK instead of sending data back to client.
+        data = "\0";
+        self.data = data;
+        self.writecmd(self.CCSPIAPP,0xA1,len(data),data);
+        buffer = self.data;
+        return ord(buffer[3]);
 
     def RF_modulated_spectrum(self):
         """Hold a carrier wave on the present frequency."""