-- Automatically generated by util/generate-tmr-hsc.pl {-# LANGUAGE OverloadedStrings, FlexibleInstances, DeriveDataTypeable #-} module System.Hardware.MercuryApi.Enums where import Data.Hashable ( Hashable(..) ) import Data.Int ( Int8, Int16, Int32 ) import Data.Monoid ( (<>) ) import Data.Text (Text) import qualified Data.Text as T ( pack ) import Data.Word ( Word8, Word16, Word32 ) import Text.Printf ( printf ) #include #include #include -- | Indicates a general category of error. data StatusType = SUCCESS_TYPE | ERROR_TYPE_COMM | ERROR_TYPE_CODE | ERROR_TYPE_MISC | ERROR_TYPE_LLRP | ERROR_TYPE_BINDING -- ^ An error which originates from the Haskell binding, not the underlying C library. | ERROR_TYPE_UNKNOWN -- ^ Not a recognized status type deriving (Eq, Ord, Show, Read, Bounded, Enum) toStatusType :: Word32 -> StatusType toStatusType #{const TMR_SUCCESS_TYPE} = SUCCESS_TYPE toStatusType #{const TMR_ERROR_TYPE_COMM} = ERROR_TYPE_COMM toStatusType #{const TMR_ERROR_TYPE_CODE} = ERROR_TYPE_CODE toStatusType #{const TMR_ERROR_TYPE_MISC} = ERROR_TYPE_MISC toStatusType #{const TMR_ERROR_TYPE_LLRP} = ERROR_TYPE_LLRP toStatusType #{const ERROR_TYPE_BINDING} = ERROR_TYPE_BINDING toStatusType _ = ERROR_TYPE_UNKNOWN -- | A specific error encountered by the C API or the Haskell binding. data Status = SUCCESS -- ^ Success! (Never thrown in an exception) | ERROR_MSG_WRONG_NUMBER_OF_DATA -- ^ Invalid number of arguments | ERROR_INVALID_OPCODE -- ^ Command opcode not recognized. | ERROR_UNIMPLEMENTED_OPCODE -- ^ Command opcode recognized, but is not supported. | ERROR_MSG_POWER_TOO_HIGH -- ^ Requested power setting is above the allowed maximum. | ERROR_MSG_INVALID_FREQ_RECEIVED -- ^ Requested frequency is outside the allowed range. | ERROR_MSG_INVALID_PARAMETER_VALUE -- ^ Parameter value is outside the allowed range. | ERROR_MSG_POWER_TOO_LOW -- ^ Requested power setting is below the allowed minimum. | ERROR_UNIMPLEMENTED_FEATURE -- ^ Command not supported. | ERROR_INVALID_BAUD_RATE -- ^ Requested serial speed is not supported. | ERROR_INVALID_REGION -- ^ Region is not supported. | ERROR_INVALID_LICENSE_KEY -- ^ License key code is invalid | ERROR_BL_INVALID_IMAGE_CRC -- ^ Firmware is corrupt: Checksum doesn\'t match content. | ERROR_BL_INVALID_APP_END_ADDR -- ^ Serial protocol status code for this exception. | ERROR_FLASH_BAD_ERASE_PASSWORD -- ^ Internal reader error. Contact support. | ERROR_FLASH_BAD_WRITE_PASSWORD -- ^ Internal reader error. Contact support. | ERROR_FLASH_UNDEFINED_SECTOR -- ^ Internal reader error. Contact support. | ERROR_FLASH_ILLEGAL_SECTOR -- ^ Internal reader error. Contact support. | ERROR_FLASH_WRITE_TO_NON_ERASED_AREA -- ^ Internal reader error. Contact support. | ERROR_FLASH_WRITE_TO_ILLEGAL_SECTOR -- ^ Internal reader error. Contact support. | ERROR_FLASH_VERIFY_FAILED -- ^ Internal reader error. Contact support. | ERROR_NO_TAGS_FOUND -- ^ Reader was asked to find tags, but none were detected. | ERROR_NO_PROTOCOL_DEFINED -- ^ RFID protocol has not been configured. | ERROR_INVALID_PROTOCOL_SPECIFIED -- ^ Requested RFID protocol is not recognized. | ERROR_WRITE_PASSED_LOCK_FAILED -- ^ Lock failed after write operation | ERROR_PROTOCOL_NO_DATA_READ -- ^ Tag data was requested, but could not be read. | ERROR_AFE_NOT_ON -- ^ AFE not on - reader not sufficiently configured | ERROR_PROTOCOL_WRITE_FAILED -- ^ Write to tag failed. | ERROR_NOT_IMPLEMENTED_FOR_THIS_PROTOCOL -- ^ Command is not supported in the current RFID protocol. | ERROR_PROTOCOL_INVALID_WRITE_DATA -- ^ Data does not conform to protocol standards. | ERROR_PROTOCOL_INVALID_ADDRESS -- ^ Requested data address is outside the valid range. | ERROR_GENERAL_TAG_ERROR -- ^ Unknown error during RFID operation. | ERROR_DATA_TOO_LARGE -- ^ Read Tag Data was asked for more data than it supports. | ERROR_PROTOCOL_INVALID_KILL_PASSWORD -- ^ Incorrect password was provided to Kill Tag. | ERROR_PROTOCOL_KILL_FAILED -- ^ Kill failed for unknown reason. | ERROR_PROTOCOL_BIT_DECODING_FAILED -- ^ Internal reader error. Contact support. | ERROR_PROTOCOL_INVALID_EPC -- ^ Internal reader error. Contact support. | ERROR_PROTOCOL_INVALID_NUM_DATA -- ^ Internal reader error. Contact support. | ERROR_GEN2_PROTOCOL_OTHER_ERROR -- ^ Internal reader error. Contact support. | ERROR_GEN2_PROTOCOL_MEMORY_OVERRUN_BAD_PC -- ^ Internal reader error. Contact support. | ERROR_GEN2_PROTOCOL_MEMORY_LOCKED -- ^ Internal reader error. Contact support. | ERROR_GEN2_PROTOCOL_V2_AUTHEN_FAILED -- ^ Authentication failed with specified key. | ERROR_GEN2_PROTOCOL_V2_UNTRACE_FAILED -- ^ Untrace operation failed. | ERROR_GEN2_PROTOCOL_INSUFFICIENT_POWER -- ^ Internal reader error. Contact support. | ERROR_GEN2_PROTOCOL_NON_SPECIFIC_ERROR -- ^ Internal reader error. Contact support. | ERROR_GEN2_PROTOCOL_UNKNOWN_ERROR -- ^ Internal reader error. Contact support. | ERROR_AHAL_INVALID_FREQ -- ^ A command was received to set a frequency outside the specified range. | ERROR_AHAL_CHANNEL_OCCUPIED -- ^ With LBT enabled an attempt was made to set the frequency to an occupied channel. | ERROR_AHAL_TRANSMITTER_ON -- ^ Checking antenna status while CW is on is not allowed. | ERROR_ANTENNA_NOT_CONNECTED -- ^ Antenna not detected during pre-transmit safety test. | ERROR_TEMPERATURE_EXCEED_LIMITS -- ^ Reader temperature outside safe range. | ERROR_HIGH_RETURN_LOSS -- ^ Excess power detected at transmitter port, usually due to antenna tuning mismatch. | ERROR_INVALID_ANTENNA_CONFIG -- ^ Invalid antenna configuration | ERROR_TAG_ID_BUFFER_NOT_ENOUGH_TAGS_AVAILABLE -- ^ Asked for more tags than were available in the buffer. | ERROR_TAG_ID_BUFFER_FULL -- ^ Too many tags are in buffer. Remove some with Get Tag ID Buffer or Clear Tag ID Buffer. | ERROR_TAG_ID_BUFFER_REPEATED_TAG_ID -- ^ Internal error -- reader is trying to insert a duplicate tag record. Contact support. | ERROR_TAG_ID_BUFFER_NUM_TAG_TOO_LARGE -- ^ Asked for tags than a single transaction can handle. | ERROR_TAG_ID_BUFFER_AUTH_REQUEST -- ^ Blocked response to get additional data from host. | ERROR_SYSTEM_UNKNOWN_ERROR -- ^ Internal reader error. Contact support. | ERROR_TM_ASSERT_FAILED -- ^ Internal reader error. Contact support. | ERROR_TIMEOUT -- ^ Timeout | ERROR_NO_HOST -- ^ No matching host found | ERROR_LLRP -- ^ LLRP error | ERROR_PARSE -- ^ Error parsing device response | ERROR_DEVICE_RESET -- ^ Device was reset externally | ERROR_CRC_ERROR -- ^ CRC Error | ERROR_INVALID -- ^ Invalid argument | ERROR_UNIMPLEMENTED -- ^ Unimplemented operation | ERROR_UNSUPPORTED -- ^ Unsupported operation | ERROR_NO_ANTENNA -- ^ No antenna or invalid antenna | ERROR_READONLY -- ^ Value is read-only | ERROR_TOO_BIG -- ^ Value too big | ERROR_NO_THREADS -- ^ Thread initialization failed | ERROR_NO_TAGS -- ^ No tags to be retrieved | ERROR_NOT_FOUND -- ^ Key not found | ERROR_FIRMWARE_FORMAT -- ^ Size or format of firmware image is incorrect | ERROR_TRYAGAIN -- ^ Temporary error, try again | ERROR_OUT_OF_MEMORY -- ^ Out of memory | ERROR_INVALID_WRITE_MODE -- ^ Invalid write mode | ERROR_ILLEGAL_VALUE -- ^ Illegal value | ERROR_END_OF_READING | ERROR_UNSUPPORTED_READER_TYPE -- ^ Unsupported reader type | ERROR_BUFFER_OVERFLOW -- ^ Buffer overflow | ERROR_LOADSAVE_CONFIG | ERROR_AUTOREAD_ENABLED -- ^ Autonomous mode is enabled on reader. Please disable it | ERROR_FIRMWARE_UPDATE_ON_AUTOREAD -- ^ Firmware update is successful. Autonomous mode is already enabled on reader | ERROR_TIMESTAMP_NULL -- ^ Timestamp cannot be null | ERROR_LLRP_GETTYPEREGISTRY -- ^ LLRP Reader GetTypeRegistry Failed | ERROR_LLRP_CONNECTIONFAILED -- ^ LLRP Reader Connection attempt is failed | ERROR_LLRP_SENDIO_ERROR -- ^ LLRP Reader Send Messages failed | ERROR_LLRP_RECEIVEIO_ERROR -- ^ LLRP Reader Receive Messages failed | ERROR_LLRP_RECEIVE_TIMEOUT -- ^ LLRP Reader Receive Messages Timeout | ERROR_LLRP_MSG_PARSE_ERROR -- ^ Error parsing LLRP message | ERROR_LLRP_ALREADY_CONNECTED -- ^ Already connected to reader | ERROR_LLRP_INVALID_RFMODE -- ^ Specified RF Mode operation is not supported | ERROR_LLRP_UNDEFINED_VALUE -- ^ Undefined Value | ERROR_LLRP_READER_ERROR -- ^ LLRP reader unknown error | ERROR_LLRP_READER_CONNECTION_LOST -- ^ LLRP reader connection lost | ERROR_LLRP_CLIENT_CONNECTION_EXISTS -- ^ LLRP Reader Connection attempt is failed, A Client initiated connection already exists | ERROR_ALREADY_DESTROYED -- ^ Attempt to use reader after it was destroyed. | ERROR_INVALID_PARAM_TYPE -- ^ The parameter value was not of the type expected. | ERROR_UNIMPLEMENTED_PARAM -- ^ The given parameter is not yet implemented in the Haskell binding. | ERROR_UNKNOWN Word32 -- ^ C API returned an unrecognized status code deriving (Eq, Ord, Show, Read) toStatus :: Word32 -> Status toStatus #{const TMR_SUCCESS} = SUCCESS toStatus #{const TMR_ERROR_MSG_WRONG_NUMBER_OF_DATA} = ERROR_MSG_WRONG_NUMBER_OF_DATA toStatus #{const TMR_ERROR_INVALID_OPCODE} = ERROR_INVALID_OPCODE toStatus #{const TMR_ERROR_UNIMPLEMENTED_OPCODE} = ERROR_UNIMPLEMENTED_OPCODE toStatus #{const TMR_ERROR_MSG_POWER_TOO_HIGH} = ERROR_MSG_POWER_TOO_HIGH toStatus #{const TMR_ERROR_MSG_INVALID_FREQ_RECEIVED} = ERROR_MSG_INVALID_FREQ_RECEIVED toStatus #{const TMR_ERROR_MSG_INVALID_PARAMETER_VALUE} = ERROR_MSG_INVALID_PARAMETER_VALUE toStatus #{const TMR_ERROR_MSG_POWER_TOO_LOW} = ERROR_MSG_POWER_TOO_LOW toStatus #{const TMR_ERROR_UNIMPLEMENTED_FEATURE} = ERROR_UNIMPLEMENTED_FEATURE toStatus #{const TMR_ERROR_INVALID_BAUD_RATE} = ERROR_INVALID_BAUD_RATE toStatus #{const TMR_ERROR_INVALID_REGION} = ERROR_INVALID_REGION toStatus #{const TMR_ERROR_INVALID_LICENSE_KEY} = ERROR_INVALID_LICENSE_KEY toStatus #{const TMR_ERROR_BL_INVALID_IMAGE_CRC} = ERROR_BL_INVALID_IMAGE_CRC toStatus #{const TMR_ERROR_BL_INVALID_APP_END_ADDR} = ERROR_BL_INVALID_APP_END_ADDR toStatus #{const TMR_ERROR_FLASH_BAD_ERASE_PASSWORD} = ERROR_FLASH_BAD_ERASE_PASSWORD toStatus #{const TMR_ERROR_FLASH_BAD_WRITE_PASSWORD} = ERROR_FLASH_BAD_WRITE_PASSWORD toStatus #{const TMR_ERROR_FLASH_UNDEFINED_SECTOR} = ERROR_FLASH_UNDEFINED_SECTOR toStatus #{const TMR_ERROR_FLASH_ILLEGAL_SECTOR} = ERROR_FLASH_ILLEGAL_SECTOR toStatus #{const TMR_ERROR_FLASH_WRITE_TO_NON_ERASED_AREA} = ERROR_FLASH_WRITE_TO_NON_ERASED_AREA toStatus #{const TMR_ERROR_FLASH_WRITE_TO_ILLEGAL_SECTOR} = ERROR_FLASH_WRITE_TO_ILLEGAL_SECTOR toStatus #{const TMR_ERROR_FLASH_VERIFY_FAILED} = ERROR_FLASH_VERIFY_FAILED toStatus #{const TMR_ERROR_NO_TAGS_FOUND} = ERROR_NO_TAGS_FOUND toStatus #{const TMR_ERROR_NO_PROTOCOL_DEFINED} = ERROR_NO_PROTOCOL_DEFINED toStatus #{const TMR_ERROR_INVALID_PROTOCOL_SPECIFIED} = ERROR_INVALID_PROTOCOL_SPECIFIED toStatus #{const TMR_ERROR_WRITE_PASSED_LOCK_FAILED} = ERROR_WRITE_PASSED_LOCK_FAILED toStatus #{const TMR_ERROR_PROTOCOL_NO_DATA_READ} = ERROR_PROTOCOL_NO_DATA_READ toStatus #{const TMR_ERROR_AFE_NOT_ON} = ERROR_AFE_NOT_ON toStatus #{const TMR_ERROR_PROTOCOL_WRITE_FAILED} = ERROR_PROTOCOL_WRITE_FAILED toStatus #{const TMR_ERROR_NOT_IMPLEMENTED_FOR_THIS_PROTOCOL} = ERROR_NOT_IMPLEMENTED_FOR_THIS_PROTOCOL toStatus #{const TMR_ERROR_PROTOCOL_INVALID_WRITE_DATA} = ERROR_PROTOCOL_INVALID_WRITE_DATA toStatus #{const TMR_ERROR_PROTOCOL_INVALID_ADDRESS} = ERROR_PROTOCOL_INVALID_ADDRESS toStatus #{const TMR_ERROR_GENERAL_TAG_ERROR} = ERROR_GENERAL_TAG_ERROR toStatus #{const TMR_ERROR_DATA_TOO_LARGE} = ERROR_DATA_TOO_LARGE toStatus #{const TMR_ERROR_PROTOCOL_INVALID_KILL_PASSWORD} = ERROR_PROTOCOL_INVALID_KILL_PASSWORD toStatus #{const TMR_ERROR_PROTOCOL_KILL_FAILED} = ERROR_PROTOCOL_KILL_FAILED toStatus #{const TMR_ERROR_PROTOCOL_BIT_DECODING_FAILED} = ERROR_PROTOCOL_BIT_DECODING_FAILED toStatus #{const TMR_ERROR_PROTOCOL_INVALID_EPC} = ERROR_PROTOCOL_INVALID_EPC toStatus #{const TMR_ERROR_PROTOCOL_INVALID_NUM_DATA} = ERROR_PROTOCOL_INVALID_NUM_DATA toStatus #{const TMR_ERROR_GEN2_PROTOCOL_OTHER_ERROR} = ERROR_GEN2_PROTOCOL_OTHER_ERROR toStatus #{const TMR_ERROR_GEN2_PROTOCOL_MEMORY_OVERRUN_BAD_PC} = ERROR_GEN2_PROTOCOL_MEMORY_OVERRUN_BAD_PC toStatus #{const TMR_ERROR_GEN2_PROTOCOL_MEMORY_LOCKED} = ERROR_GEN2_PROTOCOL_MEMORY_LOCKED toStatus #{const TMR_ERROR_GEN2_PROTOCOL_V2_AUTHEN_FAILED} = ERROR_GEN2_PROTOCOL_V2_AUTHEN_FAILED toStatus #{const TMR_ERROR_GEN2_PROTOCOL_V2_UNTRACE_FAILED} = ERROR_GEN2_PROTOCOL_V2_UNTRACE_FAILED toStatus #{const TMR_ERROR_GEN2_PROTOCOL_INSUFFICIENT_POWER} = ERROR_GEN2_PROTOCOL_INSUFFICIENT_POWER toStatus #{const TMR_ERROR_GEN2_PROTOCOL_NON_SPECIFIC_ERROR} = ERROR_GEN2_PROTOCOL_NON_SPECIFIC_ERROR toStatus #{const TMR_ERROR_GEN2_PROTOCOL_UNKNOWN_ERROR} = ERROR_GEN2_PROTOCOL_UNKNOWN_ERROR toStatus #{const TMR_ERROR_AHAL_INVALID_FREQ} = ERROR_AHAL_INVALID_FREQ toStatus #{const TMR_ERROR_AHAL_CHANNEL_OCCUPIED} = ERROR_AHAL_CHANNEL_OCCUPIED toStatus #{const TMR_ERROR_AHAL_TRANSMITTER_ON} = ERROR_AHAL_TRANSMITTER_ON toStatus #{const TMR_ERROR_ANTENNA_NOT_CONNECTED} = ERROR_ANTENNA_NOT_CONNECTED toStatus #{const TMR_ERROR_TEMPERATURE_EXCEED_LIMITS} = ERROR_TEMPERATURE_EXCEED_LIMITS toStatus #{const TMR_ERROR_HIGH_RETURN_LOSS} = ERROR_HIGH_RETURN_LOSS toStatus #{const TMR_ERROR_INVALID_ANTENNA_CONFIG} = ERROR_INVALID_ANTENNA_CONFIG toStatus #{const TMR_ERROR_TAG_ID_BUFFER_NOT_ENOUGH_TAGS_AVAILABLE} = ERROR_TAG_ID_BUFFER_NOT_ENOUGH_TAGS_AVAILABLE toStatus #{const TMR_ERROR_TAG_ID_BUFFER_FULL} = ERROR_TAG_ID_BUFFER_FULL toStatus #{const TMR_ERROR_TAG_ID_BUFFER_REPEATED_TAG_ID} = ERROR_TAG_ID_BUFFER_REPEATED_TAG_ID toStatus #{const TMR_ERROR_TAG_ID_BUFFER_NUM_TAG_TOO_LARGE} = ERROR_TAG_ID_BUFFER_NUM_TAG_TOO_LARGE toStatus #{const TMR_ERROR_TAG_ID_BUFFER_AUTH_REQUEST} = ERROR_TAG_ID_BUFFER_AUTH_REQUEST toStatus #{const TMR_ERROR_SYSTEM_UNKNOWN_ERROR} = ERROR_SYSTEM_UNKNOWN_ERROR toStatus #{const TMR_ERROR_TM_ASSERT_FAILED} = ERROR_TM_ASSERT_FAILED toStatus #{const TMR_ERROR_TIMEOUT} = ERROR_TIMEOUT toStatus #{const TMR_ERROR_NO_HOST} = ERROR_NO_HOST toStatus #{const TMR_ERROR_LLRP} = ERROR_LLRP toStatus #{const TMR_ERROR_PARSE} = ERROR_PARSE toStatus #{const TMR_ERROR_DEVICE_RESET} = ERROR_DEVICE_RESET toStatus #{const TMR_ERROR_CRC_ERROR} = ERROR_CRC_ERROR toStatus #{const TMR_ERROR_INVALID} = ERROR_INVALID toStatus #{const TMR_ERROR_UNIMPLEMENTED} = ERROR_UNIMPLEMENTED toStatus #{const TMR_ERROR_UNSUPPORTED} = ERROR_UNSUPPORTED toStatus #{const TMR_ERROR_NO_ANTENNA} = ERROR_NO_ANTENNA toStatus #{const TMR_ERROR_READONLY} = ERROR_READONLY toStatus #{const TMR_ERROR_TOO_BIG} = ERROR_TOO_BIG toStatus #{const TMR_ERROR_NO_THREADS} = ERROR_NO_THREADS toStatus #{const TMR_ERROR_NO_TAGS} = ERROR_NO_TAGS toStatus #{const TMR_ERROR_NOT_FOUND} = ERROR_NOT_FOUND toStatus #{const TMR_ERROR_FIRMWARE_FORMAT} = ERROR_FIRMWARE_FORMAT toStatus #{const TMR_ERROR_TRYAGAIN} = ERROR_TRYAGAIN toStatus #{const TMR_ERROR_OUT_OF_MEMORY} = ERROR_OUT_OF_MEMORY toStatus #{const TMR_ERROR_INVALID_WRITE_MODE} = ERROR_INVALID_WRITE_MODE toStatus #{const TMR_ERROR_ILLEGAL_VALUE} = ERROR_ILLEGAL_VALUE toStatus #{const TMR_ERROR_END_OF_READING} = ERROR_END_OF_READING toStatus #{const TMR_ERROR_UNSUPPORTED_READER_TYPE} = ERROR_UNSUPPORTED_READER_TYPE toStatus #{const TMR_ERROR_BUFFER_OVERFLOW} = ERROR_BUFFER_OVERFLOW toStatus #{const TMR_ERROR_LOADSAVE_CONFIG} = ERROR_LOADSAVE_CONFIG toStatus #{const TMR_ERROR_AUTOREAD_ENABLED} = ERROR_AUTOREAD_ENABLED toStatus #{const TMR_ERROR_FIRMWARE_UPDATE_ON_AUTOREAD} = ERROR_FIRMWARE_UPDATE_ON_AUTOREAD toStatus #{const TMR_ERROR_TIMESTAMP_NULL} = ERROR_TIMESTAMP_NULL toStatus #{const TMR_ERROR_LLRP_GETTYPEREGISTRY} = ERROR_LLRP_GETTYPEREGISTRY toStatus #{const TMR_ERROR_LLRP_CONNECTIONFAILED} = ERROR_LLRP_CONNECTIONFAILED toStatus #{const TMR_ERROR_LLRP_SENDIO_ERROR} = ERROR_LLRP_SENDIO_ERROR toStatus #{const TMR_ERROR_LLRP_RECEIVEIO_ERROR} = ERROR_LLRP_RECEIVEIO_ERROR toStatus #{const TMR_ERROR_LLRP_RECEIVE_TIMEOUT} = ERROR_LLRP_RECEIVE_TIMEOUT toStatus #{const TMR_ERROR_LLRP_MSG_PARSE_ERROR} = ERROR_LLRP_MSG_PARSE_ERROR toStatus #{const TMR_ERROR_LLRP_ALREADY_CONNECTED} = ERROR_LLRP_ALREADY_CONNECTED toStatus #{const TMR_ERROR_LLRP_INVALID_RFMODE} = ERROR_LLRP_INVALID_RFMODE toStatus #{const TMR_ERROR_LLRP_UNDEFINED_VALUE} = ERROR_LLRP_UNDEFINED_VALUE toStatus #{const TMR_ERROR_LLRP_READER_ERROR} = ERROR_LLRP_READER_ERROR toStatus #{const TMR_ERROR_LLRP_READER_CONNECTION_LOST} = ERROR_LLRP_READER_CONNECTION_LOST toStatus #{const TMR_ERROR_LLRP_CLIENT_CONNECTION_EXISTS} = ERROR_LLRP_CLIENT_CONNECTION_EXISTS toStatus #{const ERROR_ALREADY_DESTROYED} = ERROR_ALREADY_DESTROYED toStatus x = ERROR_UNKNOWN x type RawRegion = #{type TMR_Region} -- | RFID regulatory regions data Region = REGION_NONE -- ^ Unspecified region | REGION_NA -- ^ North America | REGION_EU -- ^ European Union | REGION_KR -- ^ Korea | REGION_IN -- ^ India | REGION_JP -- ^ Japan | REGION_PRC -- ^ People\'s Republic of China | REGION_EU2 -- ^ European Union 2 | REGION_EU3 -- ^ European Union 3 | REGION_KR2 -- ^ Korea 2 | REGION_PRC2 -- ^ People\'s Republic of China(840MHZ) | REGION_AU -- ^ Australia | REGION_NZ -- ^ New Zealand !!EXPERIMENTAL!! | REGION_NA2 -- ^ Reduced FCC region | REGION_NA3 -- ^ 5MHZ FCC band | REGION_IS -- ^ Israel | REGION_OPEN -- ^ Open deriving (Eq, Ord, Show, Read, Bounded, Enum) toRegion :: RawRegion -> Region toRegion #{const TMR_REGION_NONE} = REGION_NONE toRegion #{const TMR_REGION_NA} = REGION_NA toRegion #{const TMR_REGION_EU} = REGION_EU toRegion #{const TMR_REGION_KR} = REGION_KR toRegion #{const TMR_REGION_IN} = REGION_IN toRegion #{const TMR_REGION_JP} = REGION_JP toRegion #{const TMR_REGION_PRC} = REGION_PRC toRegion #{const TMR_REGION_EU2} = REGION_EU2 toRegion #{const TMR_REGION_EU3} = REGION_EU3 toRegion #{const TMR_REGION_KR2} = REGION_KR2 toRegion #{const TMR_REGION_PRC2} = REGION_PRC2 toRegion #{const TMR_REGION_AU} = REGION_AU toRegion #{const TMR_REGION_NZ} = REGION_NZ toRegion #{const TMR_REGION_NA2} = REGION_NA2 toRegion #{const TMR_REGION_NA3} = REGION_NA3 toRegion #{const TMR_REGION_IS} = REGION_IS toRegion #{const TMR_REGION_OPEN} = REGION_OPEN toRegion _ = REGION_NONE fromRegion :: Region -> RawRegion fromRegion REGION_NONE = #{const TMR_REGION_NONE} fromRegion REGION_NA = #{const TMR_REGION_NA} fromRegion REGION_EU = #{const TMR_REGION_EU} fromRegion REGION_KR = #{const TMR_REGION_KR} fromRegion REGION_IN = #{const TMR_REGION_IN} fromRegion REGION_JP = #{const TMR_REGION_JP} fromRegion REGION_PRC = #{const TMR_REGION_PRC} fromRegion REGION_EU2 = #{const TMR_REGION_EU2} fromRegion REGION_EU3 = #{const TMR_REGION_EU3} fromRegion REGION_KR2 = #{const TMR_REGION_KR2} fromRegion REGION_PRC2 = #{const TMR_REGION_PRC2} fromRegion REGION_AU = #{const TMR_REGION_AU} fromRegion REGION_NZ = #{const TMR_REGION_NZ} fromRegion REGION_NA2 = #{const TMR_REGION_NA2} fromRegion REGION_NA3 = #{const TMR_REGION_NA3} fromRegion REGION_IS = #{const TMR_REGION_IS} fromRegion REGION_OPEN = #{const TMR_REGION_OPEN} -- | A description of the given region, useful for a user interface. displayRegionDescription :: Region -> Text displayRegionDescription REGION_NONE = "Unspecified region" displayRegionDescription REGION_NA = "North America" displayRegionDescription REGION_EU = "European Union" displayRegionDescription REGION_KR = "Korea" displayRegionDescription REGION_IN = "India" displayRegionDescription REGION_JP = "Japan" displayRegionDescription REGION_PRC = "People's Republic of China" displayRegionDescription REGION_EU2 = "European Union 2" displayRegionDescription REGION_EU3 = "European Union 3" displayRegionDescription REGION_KR2 = "Korea 2" displayRegionDescription REGION_PRC2 = "People's Republic of China(840MHZ)" displayRegionDescription REGION_AU = "Australia" displayRegionDescription REGION_NZ = "New Zealand !!EXPERIMENTAL!!" displayRegionDescription REGION_NA2 = "Reduced FCC region" displayRegionDescription REGION_NA3 = "5MHZ FCC band" displayRegionDescription REGION_IS = "Israel" displayRegionDescription REGION_OPEN = "Open" type RawTagProtocol = #{type TMR_TagProtocol} -- | The protocol used by an RFID tag. Only 'TAG_PROTOCOL_GEN2' -- is supported by the M6e Nano, and therefore the Haskell -- binding currently only supports that protocol. data TagProtocol = TAG_PROTOCOL_NONE | TAG_PROTOCOL_ISO180006B | TAG_PROTOCOL_GEN2 | TAG_PROTOCOL_ISO180006B_UCODE | TAG_PROTOCOL_IPX64 | TAG_PROTOCOL_IPX256 | TAG_PROTOCOL_ATA deriving (Eq, Ord, Show, Read, Bounded, Enum) toTagProtocol :: RawTagProtocol -> TagProtocol toTagProtocol #{const TMR_TAG_PROTOCOL_NONE} = TAG_PROTOCOL_NONE toTagProtocol #{const TMR_TAG_PROTOCOL_ISO180006B} = TAG_PROTOCOL_ISO180006B toTagProtocol #{const TMR_TAG_PROTOCOL_GEN2} = TAG_PROTOCOL_GEN2 toTagProtocol #{const TMR_TAG_PROTOCOL_ISO180006B_UCODE} = TAG_PROTOCOL_ISO180006B_UCODE toTagProtocol #{const TMR_TAG_PROTOCOL_IPX64} = TAG_PROTOCOL_IPX64 toTagProtocol #{const TMR_TAG_PROTOCOL_IPX256} = TAG_PROTOCOL_IPX256 toTagProtocol #{const TMR_TAG_PROTOCOL_ATA} = TAG_PROTOCOL_ATA toTagProtocol _ = TAG_PROTOCOL_NONE fromTagProtocol :: TagProtocol -> RawTagProtocol fromTagProtocol TAG_PROTOCOL_NONE = #{const TMR_TAG_PROTOCOL_NONE} fromTagProtocol TAG_PROTOCOL_ISO180006B = #{const TMR_TAG_PROTOCOL_ISO180006B} fromTagProtocol TAG_PROTOCOL_GEN2 = #{const TMR_TAG_PROTOCOL_GEN2} fromTagProtocol TAG_PROTOCOL_ISO180006B_UCODE = #{const TMR_TAG_PROTOCOL_ISO180006B_UCODE} fromTagProtocol TAG_PROTOCOL_IPX64 = #{const TMR_TAG_PROTOCOL_IPX64} fromTagProtocol TAG_PROTOCOL_IPX256 = #{const TMR_TAG_PROTOCOL_IPX256} fromTagProtocol TAG_PROTOCOL_ATA = #{const TMR_TAG_PROTOCOL_ATA} type RawMetadataFlag = #{type TMR_TRD_MetadataFlag} -- | Various metadata parameters which can be requested -- in 'PARAM_METADATAFLAG'. data MetadataFlag = METADATA_FLAG_READCOUNT | METADATA_FLAG_RSSI | METADATA_FLAG_ANTENNAID | METADATA_FLAG_FREQUENCY | METADATA_FLAG_TIMESTAMP | METADATA_FLAG_PHASE | METADATA_FLAG_PROTOCOL | METADATA_FLAG_DATA | METADATA_FLAG_GPIO_STATUS deriving (Eq, Ord, Show, Read, Bounded, Enum) fromMetadataFlag :: MetadataFlag -> RawMetadataFlag fromMetadataFlag METADATA_FLAG_READCOUNT = #{const TMR_TRD_METADATA_FLAG_READCOUNT} fromMetadataFlag METADATA_FLAG_RSSI = #{const TMR_TRD_METADATA_FLAG_RSSI} fromMetadataFlag METADATA_FLAG_ANTENNAID = #{const TMR_TRD_METADATA_FLAG_ANTENNAID} fromMetadataFlag METADATA_FLAG_FREQUENCY = #{const TMR_TRD_METADATA_FLAG_FREQUENCY} fromMetadataFlag METADATA_FLAG_TIMESTAMP = #{const TMR_TRD_METADATA_FLAG_TIMESTAMP} fromMetadataFlag METADATA_FLAG_PHASE = #{const TMR_TRD_METADATA_FLAG_PHASE} fromMetadataFlag METADATA_FLAG_PROTOCOL = #{const TMR_TRD_METADATA_FLAG_PROTOCOL} fromMetadataFlag METADATA_FLAG_DATA = #{const TMR_TRD_METADATA_FLAG_DATA} fromMetadataFlag METADATA_FLAG_GPIO_STATUS = #{const TMR_TRD_METADATA_FLAG_GPIO_STATUS} type RawBank = #{type TMR_GEN2_Bank} -- | Gen2 memory banks data GEN2_Bank = GEN2_BANK_RESERVED -- ^ Reserved bank (kill and access passwords) | GEN2_BANK_EPC -- ^ EPC memory bank | GEN2_BANK_TID -- ^ TID memory bank | GEN2_BANK_USER -- ^ User memory bank deriving (Eq, Ord, Show, Read, Bounded, Enum) fromBank :: GEN2_Bank -> RawBank fromBank GEN2_BANK_RESERVED = #{const TMR_GEN2_BANK_RESERVED} fromBank GEN2_BANK_EPC = #{const TMR_GEN2_BANK_EPC} fromBank GEN2_BANK_TID = #{const TMR_GEN2_BANK_TID} fromBank GEN2_BANK_USER = #{const TMR_GEN2_BANK_USER} toBank :: RawBank -> GEN2_Bank toBank #{const TMR_GEN2_BANK_RESERVED} = GEN2_BANK_RESERVED toBank #{const TMR_GEN2_BANK_EPC} = GEN2_BANK_EPC toBank #{const TMR_GEN2_BANK_TID} = GEN2_BANK_TID toBank #{const TMR_GEN2_BANK_USER} = GEN2_BANK_USER toBank x = error $ "didn't expect bank to be " ++ show x fromExtraBank :: GEN2_Bank -> RawBank fromExtraBank GEN2_BANK_RESERVED = #{const TMR_GEN2_BANK_RESERVED_ENABLED} fromExtraBank GEN2_BANK_EPC = #{const TMR_GEN2_BANK_EPC_ENABLED} fromExtraBank GEN2_BANK_TID = #{const TMR_GEN2_BANK_TID_ENABLED} fromExtraBank GEN2_BANK_USER = #{const TMR_GEN2_BANK_USER_ENABLED} type RawLockBits = #{type TMR_GEN2_LockBits} -- | Memory lock bits data GEN2_LockBits = GEN2_LOCK_BITS_USER_PERM -- ^ User memory bank lock permalock bit | GEN2_LOCK_BITS_USER -- ^ User memory bank lock bit | GEN2_LOCK_BITS_TID_PERM -- ^ TID memory bank lock permalock bit | GEN2_LOCK_BITS_TID -- ^ TID memory bank lock bit | GEN2_LOCK_BITS_EPC_PERM -- ^ EPC memory bank lock permalock bit | GEN2_LOCK_BITS_EPC -- ^ EPC memory bank lock bit | GEN2_LOCK_BITS_ACCESS_PERM -- ^ Access password lock permalock bit | GEN2_LOCK_BITS_ACCESS -- ^ Access password lock bit | GEN2_LOCK_BITS_KILL_PERM -- ^ Kill password lock permalock bit | GEN2_LOCK_BITS_KILL -- ^ Kill password lock bit deriving (Eq, Ord, Show, Read, Bounded, Enum) fromLockBits :: GEN2_LockBits -> RawLockBits fromLockBits GEN2_LOCK_BITS_USER_PERM = #{const TMR_GEN2_LOCK_BITS_USER_PERM} fromLockBits GEN2_LOCK_BITS_USER = #{const TMR_GEN2_LOCK_BITS_USER} fromLockBits GEN2_LOCK_BITS_TID_PERM = #{const TMR_GEN2_LOCK_BITS_TID_PERM} fromLockBits GEN2_LOCK_BITS_TID = #{const TMR_GEN2_LOCK_BITS_TID} fromLockBits GEN2_LOCK_BITS_EPC_PERM = #{const TMR_GEN2_LOCK_BITS_EPC_PERM} fromLockBits GEN2_LOCK_BITS_EPC = #{const TMR_GEN2_LOCK_BITS_EPC} fromLockBits GEN2_LOCK_BITS_ACCESS_PERM = #{const TMR_GEN2_LOCK_BITS_ACCESS_PERM} fromLockBits GEN2_LOCK_BITS_ACCESS = #{const TMR_GEN2_LOCK_BITS_ACCESS} fromLockBits GEN2_LOCK_BITS_KILL_PERM = #{const TMR_GEN2_LOCK_BITS_KILL_PERM} fromLockBits GEN2_LOCK_BITS_KILL = #{const TMR_GEN2_LOCK_BITS_KILL} opcodeName :: Word8 -> Text opcodeName #{const TMR_SR_OPCODE_WRITE_FLASH} = "WRITE_FLASH" opcodeName #{const TMR_SR_OPCODE_READ_FLASH} = "READ_FLASH" opcodeName #{const TMR_SR_OPCODE_VERSION} = "VERSION" opcodeName #{const TMR_SR_OPCODE_BOOT_FIRMWARE} = "BOOT_FIRMWARE" opcodeName #{const TMR_SR_OPCODE_SET_BAUD_RATE} = "SET_BAUD_RATE" opcodeName #{const TMR_SR_OPCODE_ERASE_FLASH} = "ERASE_FLASH" opcodeName #{const TMR_SR_OPCODE_VERIFY_IMAGE_CRC} = "VERIFY_IMAGE_CRC" opcodeName #{const TMR_SR_OPCODE_BOOT_BOOTLOADER} = "BOOT_BOOTLOADER" opcodeName #{const TMR_SR_OPCODE_HW_VERSION} = "HW_VERSION" opcodeName #{const TMR_SR_OPCODE_MODIFY_FLASH} = "MODIFY_FLASH" opcodeName #{const TMR_SR_OPCODE_GET_DSP_SILICON_ID} = "GET_DSP_SILICON_ID" opcodeName #{const TMR_SR_OPCODE_GET_CURRENT_PROGRAM} = "GET_CURRENT_PROGRAM" opcodeName #{const TMR_SR_OPCODE_WRITE_FLASH_SECTOR} = "WRITE_FLASH_SECTOR" opcodeName #{const TMR_SR_OPCODE_GET_SECTOR_SIZE} = "GET_SECTOR_SIZE" opcodeName #{const TMR_SR_OPCODE_MODIFY_FLASH_SECTOR} = "MODIFY_FLASH_SECTOR" opcodeName #{const TMR_SR_OPCODE_READ_TAG_ID_SINGLE} = "READ_TAG_ID_SINGLE" opcodeName #{const TMR_SR_OPCODE_READ_TAG_ID_MULTIPLE} = "READ_TAG_ID_MULTIPLE" opcodeName #{const TMR_SR_OPCODE_WRITE_TAG_ID} = "WRITE_TAG_ID" opcodeName #{const TMR_SR_OPCODE_WRITE_TAG_DATA} = "WRITE_TAG_DATA" opcodeName #{const TMR_SR_OPCODE_LOCK_TAG} = "LOCK_TAG" opcodeName #{const TMR_SR_OPCODE_KILL_TAG} = "KILL_TAG" opcodeName #{const TMR_SR_OPCODE_READ_TAG_DATA} = "READ_TAG_DATA" opcodeName #{const TMR_SR_OPCODE_GET_TAG_ID_BUFFER} = "GET_TAG_ID_BUFFER" opcodeName #{const TMR_SR_OPCODE_CLEAR_TAG_ID_BUFFER} = "CLEAR_TAG_ID_BUFFER" opcodeName #{const TMR_SR_OPCODE_WRITE_TAG_SPECIFIC} = "WRITE_TAG_SPECIFIC" opcodeName #{const TMR_SR_OPCODE_ERASE_BLOCK_TAG_SPECIFIC} = "ERASE_BLOCK_TAG_SPECIFIC" opcodeName #{const TMR_SR_OPCODE_MULTI_PROTOCOL_TAG_OP} = "MULTI_PROTOCOL_TAG_OP" opcodeName #{const TMR_SR_OPCODE_GET_ANTENNA_PORT} = "GET_ANTENNA_PORT" opcodeName #{const TMR_SR_OPCODE_GET_READ_TX_POWER} = "GET_READ_TX_POWER" opcodeName #{const TMR_SR_OPCODE_GET_TAG_PROTOCOL} = "GET_TAG_PROTOCOL" opcodeName #{const TMR_SR_OPCODE_GET_WRITE_TX_POWER} = "GET_WRITE_TX_POWER" opcodeName #{const TMR_SR_OPCODE_GET_FREQ_HOP_TABLE} = "GET_FREQ_HOP_TABLE" opcodeName #{const TMR_SR_OPCODE_GET_USER_GPIO_INPUTS} = "GET_USER_GPIO_INPUTS" opcodeName #{const TMR_SR_OPCODE_GET_REGION} = "GET_REGION" opcodeName #{const TMR_SR_OPCODE_GET_POWER_MODE} = "GET_POWER_MODE" opcodeName #{const TMR_SR_OPCODE_GET_USER_MODE} = "GET_USER_MODE" opcodeName #{const TMR_SR_OPCODE_GET_READER_OPTIONAL_PARAMS} = "GET_READER_OPTIONAL_PARAMS" opcodeName #{const TMR_SR_OPCODE_GET_PROTOCOL_PARAM} = "GET_PROTOCOL_PARAM" opcodeName #{const TMR_SR_OPCODE_GET_READER_STATS} = "GET_READER_STATS" opcodeName #{const TMR_SR_OPCODE_GET_USER_PROFILE} = "GET_USER_PROFILE" opcodeName #{const TMR_SR_OPCODE_GET_AVAILABLE_PROTOCOLS} = "GET_AVAILABLE_PROTOCOLS" opcodeName #{const TMR_SR_OPCODE_GET_AVAILABLE_REGIONS} = "GET_AVAILABLE_REGIONS" opcodeName #{const TMR_SR_OPCODE_GET_TEMPERATURE} = "GET_TEMPERATURE" opcodeName #{const TMR_SR_OPCODE_SET_ANTENNA_PORT} = "SET_ANTENNA_PORT" opcodeName #{const TMR_SR_OPCODE_SET_READ_TX_POWER} = "SET_READ_TX_POWER" opcodeName #{const TMR_SR_OPCODE_SET_TAG_PROTOCOL} = "SET_TAG_PROTOCOL" opcodeName #{const TMR_SR_OPCODE_SET_WRITE_TX_POWER} = "SET_WRITE_TX_POWER" opcodeName #{const TMR_SR_OPCODE_SET_FREQ_HOP_TABLE} = "SET_FREQ_HOP_TABLE" opcodeName #{const TMR_SR_OPCODE_SET_USER_GPIO_OUTPUTS} = "SET_USER_GPIO_OUTPUTS" opcodeName #{const TMR_SR_OPCODE_SET_REGION} = "SET_REGION" opcodeName #{const TMR_SR_OPCODE_SET_POWER_MODE} = "SET_POWER_MODE" opcodeName #{const TMR_SR_OPCODE_SET_USER_MODE} = "SET_USER_MODE" opcodeName #{const TMR_SR_OPCODE_SET_READER_OPTIONAL_PARAMS} = "SET_READER_OPTIONAL_PARAMS" opcodeName #{const TMR_SR_OPCODE_SET_PROTOCOL_PARAM} = "SET_PROTOCOL_PARAM" opcodeName #{const TMR_SR_OPCODE_SET_USER_PROFILE} = "SET_USER_PROFILE" opcodeName #{const TMR_SR_OPCODE_SET_PROTOCOL_LICENSEKEY} = "SET_PROTOCOL_LICENSEKEY" opcodeName #{const TMR_SR_OPCODE_SET_OPERATING_FREQ} = "SET_OPERATING_FREQ" opcodeName #{const TMR_SR_OPCODE_TX_CW_SIGNAL} = "TX_CW_SIGNAL" opcodeName x = "Unknown opcode " <> T.pack (printf "0x%02X" x) type RawWriteMode = #{type TMR_GEN2_WriteMode} -- | Whether to use word write or block write for -- 'System.Hardware.MercuryApi.TagOp_GEN2_WriteData'. data GEN2_WriteMode = GEN2_WORD_ONLY | GEN2_BLOCK_ONLY | GEN2_BLOCK_FALLBACK deriving (Eq, Ord, Show, Read, Bounded, Enum) fromWriteMode :: GEN2_WriteMode -> RawWriteMode fromWriteMode GEN2_WORD_ONLY = #{const TMR_GEN2_WORD_ONLY} fromWriteMode GEN2_BLOCK_ONLY = #{const TMR_GEN2_BLOCK_ONLY} fromWriteMode GEN2_BLOCK_FALLBACK = #{const TMR_GEN2_BLOCK_FALLBACK} toWriteMode :: RawWriteMode -> GEN2_WriteMode toWriteMode #{const TMR_GEN2_WORD_ONLY} = GEN2_WORD_ONLY toWriteMode #{const TMR_GEN2_BLOCK_ONLY} = GEN2_BLOCK_ONLY toWriteMode #{const TMR_GEN2_BLOCK_FALLBACK} = GEN2_BLOCK_FALLBACK toWriteMode x = error $ "didn't expect WriteMode to be " ++ show x type RawPowerMode = #{type TMR_SR_PowerMode} -- | Value for parameter 'PARAM_POWERMODE'. On the M6e Nano, -- 'POWER_MODE_MINSAVE', 'POWER_MODE_MEDSAVE', and -- 'POWER_MODE_MAXSAVE' are all the same. data PowerMode = POWER_MODE_FULL | POWER_MODE_MINSAVE | POWER_MODE_MEDSAVE | POWER_MODE_MAXSAVE | POWER_MODE_SLEEP deriving (Eq, Ord, Show, Read, Bounded, Enum) fromPowerMode :: PowerMode -> RawPowerMode fromPowerMode POWER_MODE_FULL = #{const TMR_SR_POWER_MODE_FULL} fromPowerMode POWER_MODE_MINSAVE = #{const TMR_SR_POWER_MODE_MINSAVE} fromPowerMode POWER_MODE_MEDSAVE = #{const TMR_SR_POWER_MODE_MEDSAVE} fromPowerMode POWER_MODE_MAXSAVE = #{const TMR_SR_POWER_MODE_MAXSAVE} fromPowerMode POWER_MODE_SLEEP = #{const TMR_SR_POWER_MODE_SLEEP} toPowerMode :: RawPowerMode -> PowerMode toPowerMode #{const TMR_SR_POWER_MODE_FULL} = POWER_MODE_FULL toPowerMode #{const TMR_SR_POWER_MODE_MINSAVE} = POWER_MODE_MINSAVE toPowerMode #{const TMR_SR_POWER_MODE_MEDSAVE} = POWER_MODE_MEDSAVE toPowerMode #{const TMR_SR_POWER_MODE_MAXSAVE} = POWER_MODE_MAXSAVE toPowerMode #{const TMR_SR_POWER_MODE_SLEEP} = POWER_MODE_SLEEP toPowerMode x = error $ "didn't expect PowerMode to be " ++ show x type RawParam = #{type TMR_Param} -- | Reader parameters which you can get and set. The names -- are the same as the names of the enum in the C API. -- (Unfortunately, these do not correspond to the -- \"path\"-style names in any systematic way.) -- Each parameter is listed with its \"path\", and the -- Haskell type which is used to store it. Some parameters -- are also listed with the physical units the parameter -- is in. Not all parameters are implemented in the Haskell -- binding. Please file a Github issue if there is a parameter -- you need which is not implemented. data Param = PARAM_NONE -- ^ No such parameter - used as a return value from 'System.Hardware.MercuryApi.paramID'. | PARAM_BAUDRATE -- ^ @\/reader\/baudRate@ 'Word32' | PARAM_COMMANDTIMEOUT -- ^ @\/reader\/commandTimeout@ 'Word32' (milliseconds) | PARAM_CURRENTTIME -- ^ @\/reader\/currentTime@ (Not yet implemented) | PARAM_READER_DESCRIPTION -- ^ @\/reader\/description@ 'Text' | PARAM_EXTENDEDEPC -- ^ @\/reader\/extendedEpc@ 'Bool' | PARAM_READER_HOSTNAME -- ^ @\/reader\/hostname@ 'Text' | PARAM_LICENSE_KEY -- ^ @\/reader\/licenseKey@ ['Word8'] | PARAM_LICENSED_FEATURES -- ^ @\/reader\/licensedFeatures@ ['Word8'] | PARAM_METADATAFLAG -- ^ @\/reader\/metadataflags@ ['MetadataFlag'] | PARAM_POWERMODE -- ^ @\/reader\/powerMode@ 'PowerMode' | PARAM_PROBEBAUDRATES -- ^ @\/reader\/probeBaudRates@ ['Word32'] | PARAM_READER_STATISTICS -- ^ @\/reader\/statistics@ (Not yet implemented) | PARAM_READER_STATS -- ^ @\/reader\/stats@ (Not yet implemented) | PARAM_TRANSPORTTIMEOUT -- ^ @\/reader\/transportTimeout@ 'Word32' (milliseconds) | PARAM_URI -- ^ @\/reader\/uri@ 'Text' (read-only) | PARAM_USER_CONFIG -- ^ @\/reader\/userConfig@ (Not yet implemented) | PARAM_USERMODE -- ^ @\/reader\/userMode@ (Not yet implemented) | PARAM_ANTENNA_CHECKPORT -- ^ @\/reader\/antenna\/checkPort@ 'Bool' | PARAM_ANTENNA_CONNECTEDPORTLIST -- ^ @\/reader\/antenna\/connectedPortList@ ['Word8'], or typedef ['System.Hardware.MercuryApi.AntennaPort'] (read-only) | PARAM_ANTENNA_PORTLIST -- ^ @\/reader\/antenna\/portList@ ['Word8'], or typedef ['System.Hardware.MercuryApi.AntennaPort'] (read-only) | PARAM_ANTENNA_PORTSWITCHGPOS -- ^ @\/reader\/antenna\/portSwitchGpos@ ['Word8'], or typedef ['System.Hardware.MercuryApi.PinNumber'] | PARAM_ANTENNA_RETURNLOSS -- ^ @\/reader\/antenna\/returnLoss@ (Not yet implemented) | PARAM_ANTENNA_SETTLINGTIMELIST -- ^ @\/reader\/antenna\/settlingTimeList@ (Not yet implemented) | PARAM_ANTENNA_TXRXMAP -- ^ @\/reader\/antenna\/txRxMap@ (Not yet implemented) | PARAM_GEN2_BLF -- ^ @\/reader\/gen2\/BLF@ (Not yet implemented) | PARAM_GEN2_ACCESSPASSWORD -- ^ @\/reader\/gen2\/accessPassword@ 'Word32', or typedef 'System.Hardware.MercuryApi.GEN2_Password' | PARAM_GEN2_BAP -- ^ @\/reader\/gen2\/bap@ (Not yet implemented) | PARAM_GEN2_PROTOCOLEXTENSION -- ^ @\/reader\/gen2\/protocolExtension@ (Not yet implemented) | PARAM_GEN2_Q -- ^ @\/reader\/gen2\/q@ (Not yet implemented) | PARAM_GEN2_SESSION -- ^ @\/reader\/gen2\/session@ (Not yet implemented) | PARAM_GEN2_TAGENCODING -- ^ @\/reader\/gen2\/tagEncoding@ (Not yet implemented) | PARAM_GEN2_TARGET -- ^ @\/reader\/gen2\/target@ (Not yet implemented) | PARAM_GEN2_TARI -- ^ @\/reader\/gen2\/tari@ (Not yet implemented) | PARAM_READER_WRITE_EARLY_EXIT -- ^ @\/reader\/gen2\/writeEarlyExit@ 'Bool' | PARAM_GEN2_WRITEMODE -- ^ @\/reader\/gen2\/writeMode@ 'GEN2_WriteMode' | PARAM_READER_WRITE_REPLY_TIMEOUT -- ^ @\/reader\/gen2\/writeReplyTimeout@ 'Word16' (microseconds) | PARAM_GPIO_INPUTLIST -- ^ @\/reader\/gpio\/inputList@ ['Word8'], or typedef ['System.Hardware.MercuryApi.PinNumber'] | PARAM_GPIO_OUTPUTLIST -- ^ @\/reader\/gpio\/outputList@ ['Word8'], or typedef ['System.Hardware.MercuryApi.PinNumber'] | PARAM_ISO180006B_BLF -- ^ @\/reader\/iso180006b\/BLF@ (Not yet implemented) | PARAM_ISO180006B_DELIMITER -- ^ @\/reader\/iso180006b\/delimiter@ (Not yet implemented) | PARAM_ISO180006B_MODULATION_DEPTH -- ^ @\/reader\/iso180006b\/modulationDepth@ (Not yet implemented) | PARAM_RADIO_ENABLEPOWERSAVE -- ^ @\/reader\/radio\/enablePowerSave@ 'Bool' | PARAM_RADIO_ENABLESJC -- ^ @\/reader\/radio\/enableSJC@ 'Bool' | PARAM_RADIO_PORTREADPOWERLIST -- ^ @\/reader\/radio\/portReadPowerList@ (Not yet implemented) | PARAM_RADIO_PORTWRITEPOWERLIST -- ^ @\/reader\/radio\/portWritePowerList@ (Not yet implemented) | PARAM_RADIO_POWERMAX -- ^ @\/reader\/radio\/powerMax@ 'Int16' (centi-dBm, read-only) | PARAM_RADIO_POWERMIN -- ^ @\/reader\/radio\/powerMin@ 'Int16' (centi-dBm, read-only) | PARAM_RADIO_READPOWER -- ^ @\/reader\/radio\/readPower@ 'Int32' (centi-dBm) | PARAM_RADIO_TEMPERATURE -- ^ @\/reader\/radio\/temperature@ 'Int8' (degrees C, read-only) | PARAM_RADIO_WRITEPOWER -- ^ @\/reader\/radio\/writePower@ 'Int32' (centi-dBm) | PARAM_READ_ASYNCOFFTIME -- ^ @\/reader\/read\/asyncOffTime@ 'Word32' (milliseconds) | PARAM_READ_ASYNCONTIME -- ^ @\/reader\/read\/asyncOnTime@ 'Word32' (milliseconds) | PARAM_READ_PLAN -- ^ @\/reader\/read\/plan@ 'System.Hardware.MercuryApi.ReadPlan' | PARAM_REGION_HOPTABLE -- ^ @\/reader\/region\/hopTable@ ['Word32'] (kHz) | PARAM_REGION_HOPTIME -- ^ @\/reader\/region\/hopTime@ 'Word32' (milliseconds) | PARAM_REGION_ID -- ^ @\/reader\/region\/id@ 'Region' | PARAM_REGION_SUPPORTEDREGIONS -- ^ @\/reader\/region\/supportedRegions@ ['Region'] (read-only) | PARAM_REGION_LBT_ENABLE -- ^ @\/reader\/region\/lbt\/enable@ 'Bool' | PARAM_READER_STATS_ENABLE -- ^ @\/reader\/stats\/enable@ (Not yet implemented) | PARAM_STATUS_ENABLE_ANTENNAREPORT -- ^ @\/reader\/status\/antennaEnable@ 'Bool' | PARAM_STATUS_ENABLE_FREQUENCYREPORT -- ^ @\/reader\/status\/frequencyEnable@ 'Bool' | PARAM_STATUS_ENABLE_TEMPERATUREREPORT -- ^ @\/reader\/status\/temperatureEnable@ 'Bool' | PARAM_TAGREADDATA_ENABLEREADFILTER -- ^ @\/reader\/tagReadData\/enableReadFilter@ 'Bool' | PARAM_TAGREADDATA_READFILTERTIMEOUT -- ^ @\/reader\/tagReadData\/readFilterTimeout@ 'Int32' | PARAM_TAGREADDATA_RECORDHIGHESTRSSI -- ^ @\/reader\/tagReadData\/recordHighestRssi@ 'Bool' | PARAM_TAGREADDATA_REPORTRSSIINDBM -- ^ @\/reader\/tagReadData\/reportRssiInDbm@ 'Bool' | PARAM_TAGREADATA_TAGOPFAILURECOUNT -- ^ @\/reader\/tagReadData\/tagopFailures@ 'Word16' (read-only) | PARAM_TAGREADATA_TAGOPSUCCESSCOUNT -- ^ @\/reader\/tagReadData\/tagopSuccesses@ 'Word16' (read-only) | PARAM_TAGREADDATA_UNIQUEBYANTENNA -- ^ @\/reader\/tagReadData\/uniqueByAntenna@ 'Bool' | PARAM_TAGREADDATA_UNIQUEBYDATA -- ^ @\/reader\/tagReadData\/uniqueByData@ 'Bool' | PARAM_TAGREADDATA_UNIQUEBYPROTOCOL -- ^ @\/reader\/tagReadData\/uniqueByProtocol@ 'Bool' | PARAM_TAGOP_ANTENNA -- ^ @\/reader\/tagop\/antenna@ 'Word8', or typedef 'System.Hardware.MercuryApi.AntennaPort' | PARAM_TAGOP_PROTOCOL -- ^ @\/reader\/tagop\/protocol@ 'TagProtocol' | PARAM_TRIGGER_READ_GPI -- ^ @\/reader\/trigger\/read\/Gpi@ ['Word8'], or typedef ['System.Hardware.MercuryApi.PinNumber'] | PARAM_VERSION_HARDWARE -- ^ @\/reader\/version\/hardware@ 'Text' (read-only) | PARAM_VERSION_MODEL -- ^ @\/reader\/version\/model@ 'Text' (read-only) | PARAM_PRODUCT_GROUP -- ^ @\/reader\/version\/productGroup@ 'Text' (read-only) | PARAM_PRODUCT_GROUP_ID -- ^ @\/reader\/version\/productGroupID@ 'Word16' (read-only) | PARAM_PRODUCT_ID -- ^ @\/reader\/version\/productID@ 'Word16' (read-only) | PARAM_VERSION_SERIAL -- ^ @\/reader\/version\/serial@ 'Text' | PARAM_VERSION_SOFTWARE -- ^ @\/reader\/version\/software@ 'Text' (read-only) | PARAM_VERSION_SUPPORTEDPROTOCOLS -- ^ @\/reader\/version\/supportedProtocols@ ['TagProtocol'] (read-only) | PARAM_SELECTED_PROTOCOLS deriving (Eq, Ord, Show, Read, Bounded, Enum) instance Hashable Param where hash = fromEnum salt `hashWithSalt` p = salt `hashWithSalt` fromEnum p toParam :: RawParam -> Param toParam #{const TMR_PARAM_NONE} = PARAM_NONE toParam #{const TMR_PARAM_BAUDRATE} = PARAM_BAUDRATE toParam #{const TMR_PARAM_PROBEBAUDRATES} = PARAM_PROBEBAUDRATES toParam #{const TMR_PARAM_COMMANDTIMEOUT} = PARAM_COMMANDTIMEOUT toParam #{const TMR_PARAM_TRANSPORTTIMEOUT} = PARAM_TRANSPORTTIMEOUT toParam #{const TMR_PARAM_POWERMODE} = PARAM_POWERMODE toParam #{const TMR_PARAM_USERMODE} = PARAM_USERMODE toParam #{const TMR_PARAM_ANTENNA_CHECKPORT} = PARAM_ANTENNA_CHECKPORT toParam #{const TMR_PARAM_ANTENNA_PORTLIST} = PARAM_ANTENNA_PORTLIST toParam #{const TMR_PARAM_ANTENNA_CONNECTEDPORTLIST} = PARAM_ANTENNA_CONNECTEDPORTLIST toParam #{const TMR_PARAM_ANTENNA_PORTSWITCHGPOS} = PARAM_ANTENNA_PORTSWITCHGPOS toParam #{const TMR_PARAM_ANTENNA_SETTLINGTIMELIST} = PARAM_ANTENNA_SETTLINGTIMELIST toParam #{const TMR_PARAM_ANTENNA_RETURNLOSS} = PARAM_ANTENNA_RETURNLOSS toParam #{const TMR_PARAM_ANTENNA_TXRXMAP} = PARAM_ANTENNA_TXRXMAP toParam #{const TMR_PARAM_GPIO_INPUTLIST} = PARAM_GPIO_INPUTLIST toParam #{const TMR_PARAM_GPIO_OUTPUTLIST} = PARAM_GPIO_OUTPUTLIST toParam #{const TMR_PARAM_GEN2_ACCESSPASSWORD} = PARAM_GEN2_ACCESSPASSWORD toParam #{const TMR_PARAM_GEN2_Q} = PARAM_GEN2_Q toParam #{const TMR_PARAM_GEN2_TAGENCODING} = PARAM_GEN2_TAGENCODING toParam #{const TMR_PARAM_GEN2_SESSION} = PARAM_GEN2_SESSION toParam #{const TMR_PARAM_GEN2_TARGET} = PARAM_GEN2_TARGET toParam #{const TMR_PARAM_GEN2_BLF} = PARAM_GEN2_BLF toParam #{const TMR_PARAM_GEN2_TARI} = PARAM_GEN2_TARI toParam #{const TMR_PARAM_GEN2_WRITEMODE} = PARAM_GEN2_WRITEMODE toParam #{const TMR_PARAM_GEN2_BAP} = PARAM_GEN2_BAP toParam #{const TMR_PARAM_GEN2_PROTOCOLEXTENSION} = PARAM_GEN2_PROTOCOLEXTENSION toParam #{const TMR_PARAM_ISO180006B_BLF} = PARAM_ISO180006B_BLF toParam #{const TMR_PARAM_ISO180006B_MODULATION_DEPTH} = PARAM_ISO180006B_MODULATION_DEPTH toParam #{const TMR_PARAM_ISO180006B_DELIMITER} = PARAM_ISO180006B_DELIMITER toParam #{const TMR_PARAM_READ_ASYNCOFFTIME} = PARAM_READ_ASYNCOFFTIME toParam #{const TMR_PARAM_READ_ASYNCONTIME} = PARAM_READ_ASYNCONTIME toParam #{const TMR_PARAM_READ_PLAN} = PARAM_READ_PLAN toParam #{const TMR_PARAM_RADIO_ENABLEPOWERSAVE} = PARAM_RADIO_ENABLEPOWERSAVE toParam #{const TMR_PARAM_RADIO_POWERMAX} = PARAM_RADIO_POWERMAX toParam #{const TMR_PARAM_RADIO_POWERMIN} = PARAM_RADIO_POWERMIN toParam #{const TMR_PARAM_RADIO_PORTREADPOWERLIST} = PARAM_RADIO_PORTREADPOWERLIST toParam #{const TMR_PARAM_RADIO_PORTWRITEPOWERLIST} = PARAM_RADIO_PORTWRITEPOWERLIST toParam #{const TMR_PARAM_RADIO_READPOWER} = PARAM_RADIO_READPOWER toParam #{const TMR_PARAM_RADIO_WRITEPOWER} = PARAM_RADIO_WRITEPOWER toParam #{const TMR_PARAM_RADIO_TEMPERATURE} = PARAM_RADIO_TEMPERATURE toParam #{const TMR_PARAM_TAGREADDATA_RECORDHIGHESTRSSI} = PARAM_TAGREADDATA_RECORDHIGHESTRSSI toParam #{const TMR_PARAM_TAGREADDATA_REPORTRSSIINDBM} = PARAM_TAGREADDATA_REPORTRSSIINDBM toParam #{const TMR_PARAM_TAGREADDATA_UNIQUEBYANTENNA} = PARAM_TAGREADDATA_UNIQUEBYANTENNA toParam #{const TMR_PARAM_TAGREADDATA_UNIQUEBYDATA} = PARAM_TAGREADDATA_UNIQUEBYDATA toParam #{const TMR_PARAM_TAGOP_ANTENNA} = PARAM_TAGOP_ANTENNA toParam #{const TMR_PARAM_TAGOP_PROTOCOL} = PARAM_TAGOP_PROTOCOL toParam #{const TMR_PARAM_VERSION_HARDWARE} = PARAM_VERSION_HARDWARE toParam #{const TMR_PARAM_VERSION_SERIAL} = PARAM_VERSION_SERIAL toParam #{const TMR_PARAM_VERSION_MODEL} = PARAM_VERSION_MODEL toParam #{const TMR_PARAM_VERSION_SOFTWARE} = PARAM_VERSION_SOFTWARE toParam #{const TMR_PARAM_VERSION_SUPPORTEDPROTOCOLS} = PARAM_VERSION_SUPPORTEDPROTOCOLS toParam #{const TMR_PARAM_REGION_HOPTABLE} = PARAM_REGION_HOPTABLE toParam #{const TMR_PARAM_REGION_HOPTIME} = PARAM_REGION_HOPTIME toParam #{const TMR_PARAM_REGION_ID} = PARAM_REGION_ID toParam #{const TMR_PARAM_REGION_SUPPORTEDREGIONS} = PARAM_REGION_SUPPORTEDREGIONS toParam #{const TMR_PARAM_REGION_LBT_ENABLE} = PARAM_REGION_LBT_ENABLE toParam #{const TMR_PARAM_LICENSE_KEY} = PARAM_LICENSE_KEY toParam #{const TMR_PARAM_USER_CONFIG} = PARAM_USER_CONFIG toParam #{const TMR_PARAM_RADIO_ENABLESJC} = PARAM_RADIO_ENABLESJC toParam #{const TMR_PARAM_EXTENDEDEPC} = PARAM_EXTENDEDEPC toParam #{const TMR_PARAM_READER_STATISTICS} = PARAM_READER_STATISTICS toParam #{const TMR_PARAM_READER_STATS} = PARAM_READER_STATS toParam #{const TMR_PARAM_URI} = PARAM_URI toParam #{const TMR_PARAM_PRODUCT_GROUP_ID} = PARAM_PRODUCT_GROUP_ID toParam #{const TMR_PARAM_PRODUCT_GROUP} = PARAM_PRODUCT_GROUP toParam #{const TMR_PARAM_PRODUCT_ID} = PARAM_PRODUCT_ID toParam #{const TMR_PARAM_TAGREADATA_TAGOPSUCCESSCOUNT} = PARAM_TAGREADATA_TAGOPSUCCESSCOUNT toParam #{const TMR_PARAM_TAGREADATA_TAGOPFAILURECOUNT} = PARAM_TAGREADATA_TAGOPFAILURECOUNT toParam #{const TMR_PARAM_STATUS_ENABLE_ANTENNAREPORT} = PARAM_STATUS_ENABLE_ANTENNAREPORT toParam #{const TMR_PARAM_STATUS_ENABLE_FREQUENCYREPORT} = PARAM_STATUS_ENABLE_FREQUENCYREPORT toParam #{const TMR_PARAM_STATUS_ENABLE_TEMPERATUREREPORT} = PARAM_STATUS_ENABLE_TEMPERATUREREPORT toParam #{const TMR_PARAM_TAGREADDATA_ENABLEREADFILTER} = PARAM_TAGREADDATA_ENABLEREADFILTER toParam #{const TMR_PARAM_TAGREADDATA_READFILTERTIMEOUT} = PARAM_TAGREADDATA_READFILTERTIMEOUT toParam #{const TMR_PARAM_TAGREADDATA_UNIQUEBYPROTOCOL} = PARAM_TAGREADDATA_UNIQUEBYPROTOCOL toParam #{const TMR_PARAM_READER_DESCRIPTION} = PARAM_READER_DESCRIPTION toParam #{const TMR_PARAM_READER_HOSTNAME} = PARAM_READER_HOSTNAME toParam #{const TMR_PARAM_CURRENTTIME} = PARAM_CURRENTTIME toParam #{const TMR_PARAM_READER_WRITE_REPLY_TIMEOUT} = PARAM_READER_WRITE_REPLY_TIMEOUT toParam #{const TMR_PARAM_READER_WRITE_EARLY_EXIT} = PARAM_READER_WRITE_EARLY_EXIT toParam #{const TMR_PARAM_READER_STATS_ENABLE} = PARAM_READER_STATS_ENABLE toParam #{const TMR_PARAM_TRIGGER_READ_GPI} = PARAM_TRIGGER_READ_GPI toParam #{const TMR_PARAM_METADATAFLAG} = PARAM_METADATAFLAG toParam #{const TMR_PARAM_LICENSED_FEATURES} = PARAM_LICENSED_FEATURES toParam #{const TMR_PARAM_SELECTED_PROTOCOLS} = PARAM_SELECTED_PROTOCOLS toParam _ = PARAM_NONE fromParam :: Param -> RawParam fromParam PARAM_NONE = #{const TMR_PARAM_NONE} fromParam PARAM_BAUDRATE = #{const TMR_PARAM_BAUDRATE} fromParam PARAM_PROBEBAUDRATES = #{const TMR_PARAM_PROBEBAUDRATES} fromParam PARAM_COMMANDTIMEOUT = #{const TMR_PARAM_COMMANDTIMEOUT} fromParam PARAM_TRANSPORTTIMEOUT = #{const TMR_PARAM_TRANSPORTTIMEOUT} fromParam PARAM_POWERMODE = #{const TMR_PARAM_POWERMODE} fromParam PARAM_USERMODE = #{const TMR_PARAM_USERMODE} fromParam PARAM_ANTENNA_CHECKPORT = #{const TMR_PARAM_ANTENNA_CHECKPORT} fromParam PARAM_ANTENNA_PORTLIST = #{const TMR_PARAM_ANTENNA_PORTLIST} fromParam PARAM_ANTENNA_CONNECTEDPORTLIST = #{const TMR_PARAM_ANTENNA_CONNECTEDPORTLIST} fromParam PARAM_ANTENNA_PORTSWITCHGPOS = #{const TMR_PARAM_ANTENNA_PORTSWITCHGPOS} fromParam PARAM_ANTENNA_SETTLINGTIMELIST = #{const TMR_PARAM_ANTENNA_SETTLINGTIMELIST} fromParam PARAM_ANTENNA_RETURNLOSS = #{const TMR_PARAM_ANTENNA_RETURNLOSS} fromParam PARAM_ANTENNA_TXRXMAP = #{const TMR_PARAM_ANTENNA_TXRXMAP} fromParam PARAM_GPIO_INPUTLIST = #{const TMR_PARAM_GPIO_INPUTLIST} fromParam PARAM_GPIO_OUTPUTLIST = #{const TMR_PARAM_GPIO_OUTPUTLIST} fromParam PARAM_GEN2_ACCESSPASSWORD = #{const TMR_PARAM_GEN2_ACCESSPASSWORD} fromParam PARAM_GEN2_Q = #{const TMR_PARAM_GEN2_Q} fromParam PARAM_GEN2_TAGENCODING = #{const TMR_PARAM_GEN2_TAGENCODING} fromParam PARAM_GEN2_SESSION = #{const TMR_PARAM_GEN2_SESSION} fromParam PARAM_GEN2_TARGET = #{const TMR_PARAM_GEN2_TARGET} fromParam PARAM_GEN2_BLF = #{const TMR_PARAM_GEN2_BLF} fromParam PARAM_GEN2_TARI = #{const TMR_PARAM_GEN2_TARI} fromParam PARAM_GEN2_WRITEMODE = #{const TMR_PARAM_GEN2_WRITEMODE} fromParam PARAM_GEN2_BAP = #{const TMR_PARAM_GEN2_BAP} fromParam PARAM_GEN2_PROTOCOLEXTENSION = #{const TMR_PARAM_GEN2_PROTOCOLEXTENSION} fromParam PARAM_ISO180006B_BLF = #{const TMR_PARAM_ISO180006B_BLF} fromParam PARAM_ISO180006B_MODULATION_DEPTH = #{const TMR_PARAM_ISO180006B_MODULATION_DEPTH} fromParam PARAM_ISO180006B_DELIMITER = #{const TMR_PARAM_ISO180006B_DELIMITER} fromParam PARAM_READ_ASYNCOFFTIME = #{const TMR_PARAM_READ_ASYNCOFFTIME} fromParam PARAM_READ_ASYNCONTIME = #{const TMR_PARAM_READ_ASYNCONTIME} fromParam PARAM_READ_PLAN = #{const TMR_PARAM_READ_PLAN} fromParam PARAM_RADIO_ENABLEPOWERSAVE = #{const TMR_PARAM_RADIO_ENABLEPOWERSAVE} fromParam PARAM_RADIO_POWERMAX = #{const TMR_PARAM_RADIO_POWERMAX} fromParam PARAM_RADIO_POWERMIN = #{const TMR_PARAM_RADIO_POWERMIN} fromParam PARAM_RADIO_PORTREADPOWERLIST = #{const TMR_PARAM_RADIO_PORTREADPOWERLIST} fromParam PARAM_RADIO_PORTWRITEPOWERLIST = #{const TMR_PARAM_RADIO_PORTWRITEPOWERLIST} fromParam PARAM_RADIO_READPOWER = #{const TMR_PARAM_RADIO_READPOWER} fromParam PARAM_RADIO_WRITEPOWER = #{const TMR_PARAM_RADIO_WRITEPOWER} fromParam PARAM_RADIO_TEMPERATURE = #{const TMR_PARAM_RADIO_TEMPERATURE} fromParam PARAM_TAGREADDATA_RECORDHIGHESTRSSI = #{const TMR_PARAM_TAGREADDATA_RECORDHIGHESTRSSI} fromParam PARAM_TAGREADDATA_REPORTRSSIINDBM = #{const TMR_PARAM_TAGREADDATA_REPORTRSSIINDBM} fromParam PARAM_TAGREADDATA_UNIQUEBYANTENNA = #{const TMR_PARAM_TAGREADDATA_UNIQUEBYANTENNA} fromParam PARAM_TAGREADDATA_UNIQUEBYDATA = #{const TMR_PARAM_TAGREADDATA_UNIQUEBYDATA} fromParam PARAM_TAGOP_ANTENNA = #{const TMR_PARAM_TAGOP_ANTENNA} fromParam PARAM_TAGOP_PROTOCOL = #{const TMR_PARAM_TAGOP_PROTOCOL} fromParam PARAM_VERSION_HARDWARE = #{const TMR_PARAM_VERSION_HARDWARE} fromParam PARAM_VERSION_SERIAL = #{const TMR_PARAM_VERSION_SERIAL} fromParam PARAM_VERSION_MODEL = #{const TMR_PARAM_VERSION_MODEL} fromParam PARAM_VERSION_SOFTWARE = #{const TMR_PARAM_VERSION_SOFTWARE} fromParam PARAM_VERSION_SUPPORTEDPROTOCOLS = #{const TMR_PARAM_VERSION_SUPPORTEDPROTOCOLS} fromParam PARAM_REGION_HOPTABLE = #{const TMR_PARAM_REGION_HOPTABLE} fromParam PARAM_REGION_HOPTIME = #{const TMR_PARAM_REGION_HOPTIME} fromParam PARAM_REGION_ID = #{const TMR_PARAM_REGION_ID} fromParam PARAM_REGION_SUPPORTEDREGIONS = #{const TMR_PARAM_REGION_SUPPORTEDREGIONS} fromParam PARAM_REGION_LBT_ENABLE = #{const TMR_PARAM_REGION_LBT_ENABLE} fromParam PARAM_LICENSE_KEY = #{const TMR_PARAM_LICENSE_KEY} fromParam PARAM_USER_CONFIG = #{const TMR_PARAM_USER_CONFIG} fromParam PARAM_RADIO_ENABLESJC = #{const TMR_PARAM_RADIO_ENABLESJC} fromParam PARAM_EXTENDEDEPC = #{const TMR_PARAM_EXTENDEDEPC} fromParam PARAM_READER_STATISTICS = #{const TMR_PARAM_READER_STATISTICS} fromParam PARAM_READER_STATS = #{const TMR_PARAM_READER_STATS} fromParam PARAM_URI = #{const TMR_PARAM_URI} fromParam PARAM_PRODUCT_GROUP_ID = #{const TMR_PARAM_PRODUCT_GROUP_ID} fromParam PARAM_PRODUCT_GROUP = #{const TMR_PARAM_PRODUCT_GROUP} fromParam PARAM_PRODUCT_ID = #{const TMR_PARAM_PRODUCT_ID} fromParam PARAM_TAGREADATA_TAGOPSUCCESSCOUNT = #{const TMR_PARAM_TAGREADATA_TAGOPSUCCESSCOUNT} fromParam PARAM_TAGREADATA_TAGOPFAILURECOUNT = #{const TMR_PARAM_TAGREADATA_TAGOPFAILURECOUNT} fromParam PARAM_STATUS_ENABLE_ANTENNAREPORT = #{const TMR_PARAM_STATUS_ENABLE_ANTENNAREPORT} fromParam PARAM_STATUS_ENABLE_FREQUENCYREPORT = #{const TMR_PARAM_STATUS_ENABLE_FREQUENCYREPORT} fromParam PARAM_STATUS_ENABLE_TEMPERATUREREPORT = #{const TMR_PARAM_STATUS_ENABLE_TEMPERATUREREPORT} fromParam PARAM_TAGREADDATA_ENABLEREADFILTER = #{const TMR_PARAM_TAGREADDATA_ENABLEREADFILTER} fromParam PARAM_TAGREADDATA_READFILTERTIMEOUT = #{const TMR_PARAM_TAGREADDATA_READFILTERTIMEOUT} fromParam PARAM_TAGREADDATA_UNIQUEBYPROTOCOL = #{const TMR_PARAM_TAGREADDATA_UNIQUEBYPROTOCOL} fromParam PARAM_READER_DESCRIPTION = #{const TMR_PARAM_READER_DESCRIPTION} fromParam PARAM_READER_HOSTNAME = #{const TMR_PARAM_READER_HOSTNAME} fromParam PARAM_CURRENTTIME = #{const TMR_PARAM_CURRENTTIME} fromParam PARAM_READER_WRITE_REPLY_TIMEOUT = #{const TMR_PARAM_READER_WRITE_REPLY_TIMEOUT} fromParam PARAM_READER_WRITE_EARLY_EXIT = #{const TMR_PARAM_READER_WRITE_EARLY_EXIT} fromParam PARAM_READER_STATS_ENABLE = #{const TMR_PARAM_READER_STATS_ENABLE} fromParam PARAM_TRIGGER_READ_GPI = #{const TMR_PARAM_TRIGGER_READ_GPI} fromParam PARAM_METADATAFLAG = #{const TMR_PARAM_METADATAFLAG} fromParam PARAM_LICENSED_FEATURES = #{const TMR_PARAM_LICENSED_FEATURES} fromParam PARAM_SELECTED_PROTOCOLS = #{const TMR_PARAM_SELECTED_PROTOCOLS} paramMax :: RawParam paramMax = #{const TMR_PARAM_MAX} -- | For parameters which are expressed in physical units, -- returns a string describing the units. Returns 'Nothing' -- for parameters which are not expressed in physical units. -- This can be useful for displaying in a user interface, -- for example. paramUnits :: Param -> Maybe Text paramUnits PARAM_COMMANDTIMEOUT = Just "milliseconds" paramUnits PARAM_TRANSPORTTIMEOUT = Just "milliseconds" paramUnits PARAM_GEN2_BLF = Just "kHz" paramUnits PARAM_READ_ASYNCOFFTIME = Just "milliseconds" paramUnits PARAM_READ_ASYNCONTIME = Just "milliseconds" paramUnits PARAM_RADIO_POWERMAX = Just "centi-dBm" paramUnits PARAM_RADIO_POWERMIN = Just "centi-dBm" paramUnits PARAM_RADIO_PORTREADPOWERLIST = Just "centi-dBm" paramUnits PARAM_RADIO_PORTWRITEPOWERLIST = Just "centi-dBm" paramUnits PARAM_RADIO_READPOWER = Just "centi-dBm" paramUnits PARAM_RADIO_WRITEPOWER = Just "centi-dBm" paramUnits PARAM_RADIO_TEMPERATURE = Just "degrees C" paramUnits PARAM_REGION_HOPTABLE = Just "kHz" paramUnits PARAM_REGION_HOPTIME = Just "milliseconds" paramUnits PARAM_READER_WRITE_REPLY_TIMEOUT = Just "microseconds" paramUnits _ = Nothing -- | The Haskell data type expected for a particular parameter. data ParamType = ParamTypeBool | ParamTypeGEN2_WriteMode | ParamTypeInt16 | ParamTypeInt32 | ParamTypeInt8 | ParamTypeMetadataFlagList | ParamTypePowerMode | ParamTypeReadPlan | ParamTypeRegion | ParamTypeRegionList | ParamTypeTagProtocol | ParamTypeTagProtocolList | ParamTypeText | ParamTypeWord16 | ParamTypeWord32 | ParamTypeWord32List | ParamTypeWord8 | ParamTypeWord8List | ParamTypeUnimplemented deriving (Eq, Ord, Show, Read, Bounded, Enum) -- | Indicates the type expected for a given parameter. paramType :: Param -> ParamType paramType PARAM_BAUDRATE = ParamTypeWord32 paramType PARAM_PROBEBAUDRATES = ParamTypeWord32List paramType PARAM_COMMANDTIMEOUT = ParamTypeWord32 paramType PARAM_TRANSPORTTIMEOUT = ParamTypeWord32 paramType PARAM_POWERMODE = ParamTypePowerMode paramType PARAM_ANTENNA_CHECKPORT = ParamTypeBool paramType PARAM_ANTENNA_PORTLIST = ParamTypeWord8List paramType PARAM_ANTENNA_CONNECTEDPORTLIST = ParamTypeWord8List paramType PARAM_ANTENNA_PORTSWITCHGPOS = ParamTypeWord8List paramType PARAM_GPIO_INPUTLIST = ParamTypeWord8List paramType PARAM_GPIO_OUTPUTLIST = ParamTypeWord8List paramType PARAM_GEN2_ACCESSPASSWORD = ParamTypeWord32 paramType PARAM_GEN2_WRITEMODE = ParamTypeGEN2_WriteMode paramType PARAM_READ_ASYNCOFFTIME = ParamTypeWord32 paramType PARAM_READ_ASYNCONTIME = ParamTypeWord32 paramType PARAM_READ_PLAN = ParamTypeReadPlan paramType PARAM_RADIO_ENABLEPOWERSAVE = ParamTypeBool paramType PARAM_RADIO_POWERMAX = ParamTypeInt16 paramType PARAM_RADIO_POWERMIN = ParamTypeInt16 paramType PARAM_RADIO_READPOWER = ParamTypeInt32 paramType PARAM_RADIO_WRITEPOWER = ParamTypeInt32 paramType PARAM_RADIO_TEMPERATURE = ParamTypeInt8 paramType PARAM_TAGREADDATA_RECORDHIGHESTRSSI = ParamTypeBool paramType PARAM_TAGREADDATA_REPORTRSSIINDBM = ParamTypeBool paramType PARAM_TAGREADDATA_UNIQUEBYANTENNA = ParamTypeBool paramType PARAM_TAGREADDATA_UNIQUEBYDATA = ParamTypeBool paramType PARAM_TAGOP_ANTENNA = ParamTypeWord8 paramType PARAM_TAGOP_PROTOCOL = ParamTypeTagProtocol paramType PARAM_VERSION_HARDWARE = ParamTypeText paramType PARAM_VERSION_SERIAL = ParamTypeText paramType PARAM_VERSION_MODEL = ParamTypeText paramType PARAM_VERSION_SOFTWARE = ParamTypeText paramType PARAM_VERSION_SUPPORTEDPROTOCOLS = ParamTypeTagProtocolList paramType PARAM_REGION_HOPTABLE = ParamTypeWord32List paramType PARAM_REGION_HOPTIME = ParamTypeWord32 paramType PARAM_REGION_ID = ParamTypeRegion paramType PARAM_REGION_SUPPORTEDREGIONS = ParamTypeRegionList paramType PARAM_REGION_LBT_ENABLE = ParamTypeBool paramType PARAM_LICENSE_KEY = ParamTypeWord8List paramType PARAM_RADIO_ENABLESJC = ParamTypeBool paramType PARAM_EXTENDEDEPC = ParamTypeBool paramType PARAM_URI = ParamTypeText paramType PARAM_PRODUCT_GROUP_ID = ParamTypeWord16 paramType PARAM_PRODUCT_GROUP = ParamTypeText paramType PARAM_PRODUCT_ID = ParamTypeWord16 paramType PARAM_TAGREADATA_TAGOPSUCCESSCOUNT = ParamTypeWord16 paramType PARAM_TAGREADATA_TAGOPFAILURECOUNT = ParamTypeWord16 paramType PARAM_STATUS_ENABLE_ANTENNAREPORT = ParamTypeBool paramType PARAM_STATUS_ENABLE_FREQUENCYREPORT = ParamTypeBool paramType PARAM_STATUS_ENABLE_TEMPERATUREREPORT = ParamTypeBool paramType PARAM_TAGREADDATA_ENABLEREADFILTER = ParamTypeBool paramType PARAM_TAGREADDATA_READFILTERTIMEOUT = ParamTypeInt32 paramType PARAM_TAGREADDATA_UNIQUEBYPROTOCOL = ParamTypeBool paramType PARAM_READER_DESCRIPTION = ParamTypeText paramType PARAM_READER_HOSTNAME = ParamTypeText paramType PARAM_READER_WRITE_REPLY_TIMEOUT = ParamTypeWord16 paramType PARAM_READER_WRITE_EARLY_EXIT = ParamTypeBool paramType PARAM_TRIGGER_READ_GPI = ParamTypeWord8List paramType PARAM_METADATAFLAG = ParamTypeMetadataFlagList paramType PARAM_LICENSED_FEATURES = ParamTypeWord8List paramType _ = ParamTypeUnimplemented -- | A textual representation of the Haskell type corresponding -- to a particular 'ParamType'. displayParamType :: ParamType -> Text displayParamType ParamTypeBool = "Bool" displayParamType ParamTypeGEN2_WriteMode = "GEN2_WriteMode" displayParamType ParamTypeInt16 = "Int16" displayParamType ParamTypeInt32 = "Int32" displayParamType ParamTypeInt8 = "Int8" displayParamType ParamTypePowerMode = "PowerMode" displayParamType ParamTypeReadPlan = "ReadPlan" displayParamType ParamTypeRegion = "Region" displayParamType ParamTypeTagProtocol = "TagProtocol" displayParamType ParamTypeText = "Text" displayParamType ParamTypeWord16 = "Word16" displayParamType ParamTypeWord32 = "Word32" displayParamType ParamTypeWord8 = "Word8" displayParamType ParamTypeMetadataFlagList = "[MetadataFlag]" displayParamType ParamTypeRegionList = "[Region]" displayParamType ParamTypeTagProtocolList = "[TagProtocol]" displayParamType ParamTypeWord32List = "[Word32]" displayParamType ParamTypeWord8List = "[Word8]" displayParamType _ = "(Not yet implemented)"