DEVICE object
The JSON DEVICE object returns all the technical data regarding a SpringCard device.
Use List connected devices to retrieve all the DEVICE objects, or Get device data if you already know the device’s DeviceId.
Object definition
Field name | Type | Status | Description | Condition |
---|---|---|---|---|
DeviceId |
string | always | The DeviceId of the device. Use this as {$id} in all /device/{$id}/* requests |
|
Binding |
string | always | pnp , not-bound , bound |
|
Status |
string | always | Current status returned by the system: ok , error , missing or unknown |
|
Channel |
string | always | Communication channel: usb , serial , ble or network |
|
FriendlyChannel |
string | option | More details regarding the communication channel (such as serial comm. name, IP address or host name, etc) | |
Mode |
string | option | Operating mode of the device: pcsc , smartreader , rfidscanner , … |
Status is OK |
FriendlyMode |
string | option | User-friendly version of the Mode (PC/SC , RDR (MQTT) , RDR (RFID Scanner) , …) |
Status is OK |
Profile |
string | option | Main communication protocol of the device: direct , ccid , hid , comm , … |
Status is OK |
Name |
string | option | Name of the device, as returned by the driver or collected from the device’s meta-data | Status is OK |
FriendlyName |
string | option | Alternate name of the device, possibly used by the system in its own views | Not empty Not equal to Name |
VendorId |
integer | option | VendorID (vvvv part of the PnpID) in decimal (7220 for SpringCard) |
|
ProductId |
integer | option | ProductID (pppp part of the PnpID) in decimal |
|
PnpId |
string | option | Technical identifier of the device, in the form ssvvvvpppprrrr where- ss is the VendorID source (02 for USB Workgroup),- vvvv is the VendorID in hex (1C34 for SpringCard),- pppp is the ProductID in hex,- rrrr the Release (for instance, 0210 for version “2.10”) |
|
SerialPort |
string | option | The name of the COM port associated to this device | Channel is serial |
IpAddress |
string | option | IPv4 network address, if the device has one | |
IpAddress6 |
string | option | IPv6 network address, if the device has one | |
SerialNumber |
string | option | Serial number of the device | Not empty |
Version |
string | option | Version of the device (ex: “2.10”) | |
Firmware |
string | option | Identification of the firmware | |
Hardware |
string | option | Identification of the hardware (part number) | Not empty |
Characteristics |
string | option | Technical characteristics of the hardware (see Hardware Characteristics) | Not empty |
UniqueId |
string | option | Unique Identifier of the device (signature of the hardware) | |
ConfigId |
string | option | The GUID of the configuration (signature of the settings) (register 0200) | Register set in NVM |
Inventory |
string | option | Inventory number (register 0201) | Register set in NVM |
Location |
string | option | Location (register 0202) | Register set in NVM |
Application |
string | option | Application name or integrator specific string (register 0208) | Register set in NVM |
LicenseKey |
string | option | License key or license number (register 0209) | Register set in NVM |
LicenseCryptogram |
string | option | License cryptogram (register 020A) | Register set in NVM |
Pcsc |
object | option | The list of PC/SC readers associated to this device. This object has 2 entries:Names : an array of strings with the name of every PC/SC readerReaderIds : an array of strings with the ReaderId of every PC/SC reader. |
Profile is pc/sc |
HidInstance |
string | option | The name of the HID driver instance associated to this device | Profile is hid |
PhysAddress |
string | option | Physical address of the device, as an hex-string, if this information is available and makes sense. For a BLE device, this is the BT_ADDR, for a network device, the MAC address. |
Warning
The DeviceId field is only a temporary value. The very same device may have a different "DeviceId"
the next time it connects to the computer. A different device may have the same DeviceId as a previously connected one.
Always use List devices to enumerate all the devices that are currently connected to the computer, and do not store the DeviceId values anywhere.
If you want to identify a particular device, use the SerialNumber or UniqueId fields.
Example
{
"Name": "Puck One",
"FriendlyName": "SpringCard Puck One",
"PnpId": "021C3461220123",
"VendorName": "SpringCard",
"ProductName": "Puck",
"ProductVariant": "One",
"SerialNumber": "251C1A74",
"Version": "1.23",
"Firmware": "springcore/h518/puck",
"Characteristics": "nfc,usb,led-rgb,buzzer,atecc,samav,crypto",
"UniqueId": "DB571829-3992-7BA4-8A6B-B3E018AA5878",
"ConfigId": "00000000-0000-0000-0000-000000000000",
"SealSubject": "C=FR,ST=Ile-de-France,O=SpringCard,OU=SpringCore,CN=DB571829-3992-7BA4-8A6B-B3E018AA5878",
"SealSignature": "WH0g5POUphEVpCmdb/cK8c7X+bgVQ0tQfVzlB8Q4br8Q0Fnvw6/OaZMENbAaH6UxFgSwuV1FLn1WrPLgq1p8DT0ps93d6PuGrIf3YMRzGK6HI6d9Or5GICJ5c/wNSJtEhhSCacYxrAznzhjkYoDPqSvyM1+DdZZIuK3SBDcaBJbi4exmKt1LaU8+nihZ3O6zxOuWQUjtv+6rmCnUd0XtP4reJcKS+RMoMCLypzM+3EXN2VUowwjtiEtULy6MJRe7CDNrWhEo7rzl2NPt1JzPqlELD4Y1Fi1jqUvoKd69i7RJTKqEkjZHtxJtEZGe1+gCum60aHUfAYvbHHvDrmewCw==",
"Genuine": true,
"DeviceId": "VwMwAs4FZZ8CVoqYNR8b21",
"Channel": "usb",
"Binding": "pnp",
"Status": "ok",
"Profile": "ccid",
"Mode": "pcsc",
"FriendlyMode": "PC/SC",
"VendorId": 7220,
"ProductId": 24866
}
Understanding the state of the device
Fields Binding
and Status
reflect the state of the device.
Please refer to this table for a complete understanding:
Status=ok | Status=missing | |
---|---|---|
Binding=pnp | Device is currently connected over a PNP channel (namely usb ) |
Not possible |
Binding=not-bound | Device is currently connected over a non-PNP channel (for instance, serial )Device is not in the list of persistent bindings |
Not possible |
Binding=bound | Device is currently connected over a non-PNP channel (for instance, serial )Device is in the list of persistent bindings |
Device is in the list of persistent bindings but is currenlty not connected |
When status
is missing
, all the optional fields of the DEVICE object are absent.