diff --git a/CHANGELOG.md b/CHANGELOG.md index bdd3e3c..bccdfdb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,7 @@ All notable changes to this project will be documented in this file. This project uses the changelog in accordance with [keepchangelog](http://keepachangelog.com/). Please use this to write notable changes, which is not the same as git commit log... ## [unreleased][unreleased] + - Fixed CLI takes into account Lite refusing to enter Reader mode (@doegox) - Security BLE implemented (@xianglin1998) - Added `hw settings blekey` to get and set ble connect key (@xianglin1998) - Added `hw ble bonds clear` to delete all ble bonds (@xianglin1998) diff --git a/firmware/application/src/app_cmd.c b/firmware/application/src/app_cmd.c index c61f2d6..be95a68 100644 --- a/firmware/application/src/app_cmd.c +++ b/firmware/application/src/app_cmd.c @@ -36,20 +36,23 @@ data_frame_tx_t *cmd_processor_get_git_version(uint16_t cmd, uint16_t status, ui data_frame_tx_t *cmd_processor_change_device_mode(uint16_t cmd, uint16_t status, uint16_t length, uint8_t *data) { -#if defined(PROJECT_CHAMELEON_ULTRA) if (length == 1) { if (data[0] == 1) { +#if defined(PROJECT_CHAMELEON_ULTRA) reader_mode_enter(); + return data_frame_make(cmd, STATUS_DEVICE_SUCCESS, 0, NULL); +#else + return data_frame_make(cmd, STATUS_NOT_IMPLEMENTED, 0, NULL); +#endif } else { +#if defined(PROJECT_CHAMELEON_ULTRA) tag_mode_enter(); +#endif + return data_frame_make(cmd, STATUS_DEVICE_SUCCESS, 0, NULL); } } else { return data_frame_make(cmd, STATUS_PAR_ERR, 0, NULL); } - return data_frame_make(cmd, STATUS_DEVICE_SUCCESS, 0, NULL); -#else - return data_frame_make(cmd, STATUS_NOT_IMPLEMENTED, 0, NULL); -#endif } data_frame_tx_t *cmd_processor_get_device_mode(uint16_t cmd, uint16_t status, uint16_t length, uint8_t *data) { diff --git a/software/script/chameleon_cmd.py b/software/script/chameleon_cmd.py index 02bcb2c..9bb4b13 100644 --- a/software/script/chameleon_cmd.py +++ b/software/script/chameleon_cmd.py @@ -317,6 +317,8 @@ class ChameleonCMD: resp = self.device.send_cmd_sync(DATA_CMD_GET_DEVICE_MODE, 0x00) return True if resp.data[0] == 1 else False + # Note: Will return NOT_IMPLEMENTED if one tries to set reader mode on Lite + @expect_response(chameleon_status.Device.STATUS_DEVICE_SUCCESS) def set_reader_device_mode(self, reader_mode: bool = True): """ Change device mode, reader or tag