Test and measurement
Resource Picker <smart-resource-picker>
ResourcePicker selects an instrument or a channel: it lists the resources the application has found, grouped by interface and named by alias, filters them as text is typed, and reads a typed resource string before it is accepted.
<smart-resource-picker> · 10 properties, 5 methods, 4 events · source/modules/smart.resourcepicker.js
Usage in TypeScript
The package ships its definitions: ResourcePicker is the element type and ResourcePickerProperties the properties, both exported from smart-industrial/source/typescript/smart.industrial. document.querySelector('smart-resource-picker') is typed as ResourcePicker.
import { ResourcePicker, ResourcePickerProperties } from 'smart-industrial/source/typescript/smart.industrial';
const resourcePicker = document.querySelector('smart-resource-picker') as ResourcePicker;
resourcePicker.value = 'GPIB0::16::INSTR';
resourcePicker.addEventListener('refreshRequest', (event: CustomEvent) => console.log(event.detail));
resourcePicker.open();
Properties
| Property | Type, default | Description |
|---|---|---|
resources | array | Sets or retrieves the resources found. Each is an object with name (the resource string), alias, description, kind (gpib, tcpip, usb, serial, pxi, daq or other; worked out from the name when absent), available and an optional id. A plain string is taken as a resource name; null and anything else that is not an object is skipped, with one console warning per list. |
value | string | Sets or retrieves the resource string in force. |
kinds | array | Sets or retrieves the kinds listed. Empty lists every kind. |
allowCustom | boolean | Accepts a typed resource the list does not have, once it parses as a resource name. |
availableOnly | boolean | Lists only the resources that are available. |
refreshable | boolean | Shows the refresh button, which raises refreshRequest. |
busy | boolean | Shows discovery in progress: the refresh button waits and the empty list says so. The application sets it while it searches. |
label | string | Sets or retrieves the label above the field, which also names the combobox. |
placeholder | string | Sets or retrieves the text shown when nothing is selected. Empty uses the localized default. |
readonly | boolean | Shows the value without allowing a change. |
Methods
| Method | Description |
|---|---|
open(): void | Opens the list. |
close(): void | Closes the list and shows the value again. |
select(name: string): void | Selects a resource by name and raises change. A name the list does not have is taken only when custom entries are allowed and it parses; otherwise the hint says so.name string The resource string or id. |
static parse(name: string): object | Also available as a static method of the class. Reads a resource string into its parts by the VISA resource syntax (IVI VPP-4.3): { kind, interface, ... } with the fields of its kind - board, address (0 to 30) and secondary (0 to 30, or 96 to 126 as the bus code some tools write; reported as written) for GPIB; board, host, addressType (ipv4, ipv6 or hostname), device, port, socket and protocol (vxi-11, hislip or socket) for LAN, where the host is an IPv4 address of four octets 0 to 255, an RFC 1123 host name or an IPv6 address - in brackets as VISA writes it (TCPIP0::[fe80::1]::inst0::INSTR), or bare where that is unambiguous, and the port is 0 to 65535; vendor, product (0 to 0xFFFF), serial and interfaceNumber for USB; board and port for serial (ASRL3, ASRLCOM3, and device paths such as ASRL/dev/ttyUSB0, whose board is null); board, bus (0 to 255), device (0 to 31), function (0 to 7), chassis and slot for PXI, from any of its three forms - PXI[bus]::device[::function], PXI[interface]::[bus-]device[.function] and PXI[interface]::CHASSISn::SLOTn[::FUNCn] - where only the last names a slot and the others give slot null, since a PCI device number is not a slot; device, channelType, channel and channelEnd for DAQ. The trailing ::INSTR may be left out, as the syntax allows. Text that is not a resource, including one that breaks these ranges (GPIB0::31::INSTR, TCPIP0::999.1.1.1::INSTR, PXI0::2::11::INSTR), is { kind: "other", name, reason } with reason the rule it broke in English, or null; empty text is null.name string The resource string. |
static isValid(name: string): boolean | Also available as a static method of the class. True for a name the picker recognises as a resource: one that parse() reads as a kind other than "other", within the VISA ranges.name string The resource string. |
Events
The data of an event is in event.detail. change reports a resource the resource picker has already set as value, and open and close report its list opening and closing; while readonly is true the list stays closed. refreshRequest is a request: the picker raises it only while busy is false and shows the new list when the application sets resources.
| Event | Description and detail |
|---|---|
change | This event is triggered when a resource is selected from the list or typed and accepted.value string The resource string.previousValue string The one before.resource object The entry of the list, or null for a typed resource.parsed object The parts of the name, as parse() reads them. |
refreshRequest | This event is triggered when the refresh button is pressed. The application performs the discovery, sets busy while it runs and assigns the resources it found. |
open | This event is triggered when the list opens. |
close | This event is triggered when the list closes. |
CSS variables
The component declares 4 CSS variables; the CSS page shows how to set them.
--smart-resource-height --smart-resource-background --smart-resource-border --smart-resource-list-background