Eric Betts hai 11 meses
pai
achega
7d3edddeb8
Modificáronse 2 ficheiros con 14 adicións e 0 borrados
  1. 2 0
      helpers/pof_usb.c
  2. 12 0
      virtual_portal.c

+ 2 - 0
helpers/pof_usb.c

@@ -196,6 +196,7 @@ static void pof_usb_deinit(usbd_device* dev) {
 
 static void pof_usb_send(usbd_device* dev, uint8_t* buf, uint16_t len) {
     // Hide frequent responses
+    /*
     if(buf[0] != 'S' && buf[0] != 'J') {
         FURI_LOG_RAW_D("> ");
         for(size_t i = 0; i < len; i++) {
@@ -203,6 +204,7 @@ static void pof_usb_send(usbd_device* dev, uint8_t* buf, uint16_t len) {
         }
         FURI_LOG_RAW_D("\r\n");
     }
+    */
     usbd_ep_write(dev, POF_USB_EP_IN, buf, len);
 }
 

+ 12 - 0
virtual_portal.c

@@ -138,12 +138,14 @@ int virtual_portal_reset(VirtualPortal* virtual_portal, uint8_t* message, uint8_
 int virtual_portal_status(VirtualPortal* virtual_portal, uint8_t* response) {
     response[0] = 'S';
 
+    bool update = false;
     for(size_t i = 0; i < POF_TOKEN_LIMIT; i++) {
         // Can't use bit_lib since it uses the opposite endian
         if(virtual_portal->tokens[i]->loaded) {
             response[1 + i / 4] |= 1 << (i * 2 + 0);
         }
         if(virtual_portal->tokens[i]->change) {
+            update = true;
             response[1 + i / 4] |= 1 << (i * 2 + 1);
         }
 
@@ -152,6 +154,16 @@ int virtual_portal_status(VirtualPortal* virtual_portal, uint8_t* response) {
     response[5] = virtual_portal_next_sequence(virtual_portal);
     response[6] = 1;
 
+    // Let me know when a status that actually has a change is sent
+    if(update) {
+        char display[33] = {0};
+        memset(display, 0, sizeof(display));
+        for(size_t i = 0; i < BLOCK_SIZE; i++) {
+            snprintf(display + (i * 2), sizeof(display), "%02x", response[i]);
+        }
+        FURI_LOG_I(TAG, "> S %s", display);
+    }
+
     return 7;
 }