فهرست منبع

Use high-bit convention for hardware response codes

ViezeVingertjes 6 ماه پیش
والد
کامیت
7982d1ce1f
1فایلهای تغییر یافته به همراه32 افزوده شده و 25 حذف شده
  1. 32 25
      examples/kiss_modem/KissModem.h

+ 32 - 25
examples/kiss_modem/KissModem.h

@@ -52,31 +52,38 @@
 #define HW_CMD_PING              0x17
 #define HW_CMD_REBOOT            0x18
 
-#define HW_RESP_IDENTITY         0x21
-#define HW_RESP_RANDOM           0x22
-#define HW_RESP_VERIFY           0x23
-#define HW_RESP_SIGNATURE        0x24
-#define HW_RESP_ENCRYPTED        0x25
-#define HW_RESP_DECRYPTED        0x26
-#define HW_RESP_SHARED_SECRET    0x27
-#define HW_RESP_HASH             0x28
-#define HW_RESP_OK               0x29
-#define HW_RESP_ERROR            0x2A
-#define HW_RESP_RADIO            0x2B
-#define HW_RESP_TX_POWER         0x2C
-#define HW_RESP_CURRENT_RSSI     0x2D
-#define HW_RESP_CHANNEL_BUSY     0x2E
-#define HW_RESP_AIRTIME          0x2F
-#define HW_RESP_NOISE_FLOOR      0x30
-#define HW_RESP_VERSION          0x31
-#define HW_RESP_STATS            0x32
-#define HW_RESP_BATTERY          0x33
-#define HW_RESP_MCU_TEMP         0x34
-#define HW_RESP_SENSORS          0x35
-#define HW_RESP_DEVICE_NAME      0x36
-#define HW_RESP_PONG             0x37
-#define HW_RESP_TX_DONE          0x38
-#define HW_RESP_RX_META          0x39
+/* Response code = command code | 0x80.  Generic / unsolicited use 0xF0+. */
+#define HW_RESP(cmd)             ((cmd) | 0x80)
+
+#define HW_RESP_IDENTITY         HW_RESP(HW_CMD_GET_IDENTITY)      /* 0x81 */
+#define HW_RESP_RANDOM           HW_RESP(HW_CMD_GET_RANDOM)        /* 0x82 */
+#define HW_RESP_VERIFY           HW_RESP(HW_CMD_VERIFY_SIGNATURE)  /* 0x83 */
+#define HW_RESP_SIGNATURE        HW_RESP(HW_CMD_SIGN_DATA)         /* 0x84 */
+#define HW_RESP_ENCRYPTED        HW_RESP(HW_CMD_ENCRYPT_DATA)      /* 0x85 */
+#define HW_RESP_DECRYPTED        HW_RESP(HW_CMD_DECRYPT_DATA)      /* 0x86 */
+#define HW_RESP_SHARED_SECRET    HW_RESP(HW_CMD_KEY_EXCHANGE)      /* 0x87 */
+#define HW_RESP_HASH             HW_RESP(HW_CMD_HASH)              /* 0x88 */
+#define HW_RESP_RADIO            HW_RESP(HW_CMD_GET_RADIO)         /* 0x8B */
+#define HW_RESP_TX_POWER         HW_RESP(HW_CMD_GET_TX_POWER)      /* 0x8C */
+#define HW_RESP_CURRENT_RSSI     HW_RESP(HW_CMD_GET_CURRENT_RSSI)  /* 0x8D */
+#define HW_RESP_CHANNEL_BUSY     HW_RESP(HW_CMD_IS_CHANNEL_BUSY)   /* 0x8E */
+#define HW_RESP_AIRTIME          HW_RESP(HW_CMD_GET_AIRTIME)       /* 0x8F */
+#define HW_RESP_NOISE_FLOOR      HW_RESP(HW_CMD_GET_NOISE_FLOOR)   /* 0x90 */
+#define HW_RESP_VERSION          HW_RESP(HW_CMD_GET_VERSION)        /* 0x91 */
+#define HW_RESP_STATS            HW_RESP(HW_CMD_GET_STATS)         /* 0x92 */
+#define HW_RESP_BATTERY          HW_RESP(HW_CMD_GET_BATTERY)       /* 0x93 */
+#define HW_RESP_MCU_TEMP         HW_RESP(HW_CMD_GET_MCU_TEMP)      /* 0x94 */
+#define HW_RESP_SENSORS          HW_RESP(HW_CMD_GET_SENSORS)       /* 0x95 */
+#define HW_RESP_DEVICE_NAME      HW_RESP(HW_CMD_GET_DEVICE_NAME)   /* 0x96 */
+#define HW_RESP_PONG             HW_RESP(HW_CMD_PING)              /* 0x97 */
+
+/* Generic responses (shared by multiple commands) */
+#define HW_RESP_OK               0xF0
+#define HW_RESP_ERROR            0xF1
+
+/* Unsolicited notifications (no corresponding request) */
+#define HW_RESP_TX_DONE          0xF8
+#define HW_RESP_RX_META          0xF9
 
 #define HW_ERR_INVALID_LENGTH    0x01
 #define HW_ERR_INVALID_PARAM     0x02