#include "Commands.h" #include #include #include "XModem.h" #include "../Settings.h" #include "../Chameleon-Mini.h" #include "../LUFA/Version.h" #include "../Configuration.h" #include "../Random.h" #include "../Memory.h" #include "../System.h" #include "../Button.h" #include "../AntennaLevel.h" extern const PROGMEM CommandEntryType CommandTable[]; CommandStatusIdType CommandGetVersion(char* OutParam) { snprintf_P(OutParam, TERMINAL_BUFFER_SIZE, PSTR( "Chameleon-Mini %S using LUFA %S compiled with AVR-GCC %S" ), PSTR(CHAMELEON_MINI_VERSION_STRING), PSTR(LUFA_VERSION_STRING), PSTR(__VERSION__) ); return COMMAND_INFO_OK_WITH_TEXT_ID; } CommandStatusIdType CommandGetConfig(char* OutParam) { snprintf_P(OutParam, TERMINAL_BUFFER_SIZE, PSTR("%s"), ActiveConfiguration.ConfigurationName); return COMMAND_INFO_OK_WITH_TEXT_ID; } CommandStatusIdType CommandSetConfig(const char* InParam) { if (ConfigurationSetByName(InParam)) { SettingsSave(); return COMMAND_INFO_OK_ID; } else { return COMMAND_ERR_INVALID_PARAM_ID; } } CommandStatusIdType CommandExecConfig(char* OutMessage) { ConfigurationGetList(OutMessage, TERMINAL_BUFFER_SIZE); return COMMAND_INFO_OK_WITH_TEXT_ID; } CommandStatusIdType CommandGetUid(char* OutParam) { uint8_t UidBuffer[COMMAND_UID_BUFSIZE]; uint16_t UidSize = ActiveConfiguration.UidSize; ApplicationGetUid(UidBuffer); BufferToHexString(OutParam, TERMINAL_BUFFER_SIZE, UidBuffer, UidSize); return COMMAND_INFO_OK_WITH_TEXT_ID; } CommandStatusIdType CommandSetUid(const char* InParam) { uint8_t UidBuffer[COMMAND_UID_BUFSIZE]; uint16_t UidSize = ActiveConfiguration.UidSize; if (strcmp_P(InParam, PSTR(COMMAND_UID_RANDOM)) == 0) { /* Load with random bytes */ for (uint8_t i=0; iCommand) != 0) { const char* CommandName = EntryPtr->Command; char c; while( (c = pgm_read_byte(CommandName)) != '\0' && ByteCount > 32) { *OutMessage++ = c; CommandName++; ByteCount--; } *OutMessage++ = ','; ByteCount--; EntryPtr++; } *--OutMessage = '\0'; return COMMAND_INFO_OK_WITH_TEXT_ID; } CommandStatusIdType CommandGetRssi(char* OutParam) { snprintf_P(OutParam, TERMINAL_BUFFER_SIZE, PSTR("%5u mV"), AntennaLevelGet()); return COMMAND_INFO_OK_WITH_TEXT_ID; }