A token is basically a variable that you can store data in or retrieve data from at runtime in your guiDesigner projects. A token has a name and a value.
Suggested Syntax: [name]
A token can be named anything you like, but we suggest you follow the syntax above, including the square brackets in your token names. By doing this, it makes it easier to see where your token is actually being used within command values, etc.
There are three types of tokens:
As the name suggests, a global token is available to be used globally throughout your guiDesigner project.
Global tokens are defined in Project Properties > Global Token Manager.
A global token is the only type of token that can be set to persist its data across launches of iViewer, so you can store state data and retrieve it again the next time iViewer is opened.
Using our JavaScript API, you could persist a JSON string across sessions and restore the JSON object on each launch, allowing you to theoretically store any dynamic data across launches.
NOTE: Data is not persisted across GUI reloads. Each time the GUI is reloaded (when Reload GUI Layout is enabled in iViewer Settings), global token values will be reset to their default value (or blank if no value is defined in the Global Token Manager).
There are a number of tokens that are predefined for you in certain cases, depending where the token is being used.
[ipv4address]
- The IP Address of the device.[ipv4netmask]
- The subnet mask of the device.[ipv4addresshex]
- The IP Address of the device, in hex bytes.[ipv6address]
- The IPv6 Address of the device.[ipv6netmask]
- The IPv6 subnet mask of the device.[networkSSID]
- The SSID of the Wi-Fi network currently connected.[networkType]
- The network type currently being used for communications. Eg. None, WiFi, WAN, Other, VPN.[uuid]
- The device ID of the mobile device running iViewer that is used for licensing purposes.[MACAddress]
- The MAC Address of the device. Note this will return '02:00:00:00:00:00', since Apple denies any app from accessing the MAC Address since iOS7 onwards.[join]
- The join number and join type of the object, e.g. 'd10' for a digital join of a button, 's4' for the serial join of an image object, 'a12' for the analog join of a slider object.[@<join>]
- Get the 'value' of a specific join. eg: [@s10]
would return the value of serial join 10. [@d5]
would return the value (0 or 1) of digital join 5.[@<join>:<token>]
- Same as above, but returning the value of a specific token assigned to a specific join. eg. [@l5:[count]]
would return the number of list items in the list assigned join 5.Any object within a list (button, slider, image, etc) will automatically have the following tokens attached to it:
[list_join]
- The join number of the list that the object resides in[item_index]
- The list index (zero based) of the list item that the object resides in.[count]
- The total number of items the list contains.[visible]
- The total number of items that are currently visible within the list.[top]
- The index of the first visible item within the list.[scrolloffset]
- The scroll position of the list in pixels.See the gesture wiki entry for details on the predefined tokens available for gesture actions.
[sliderval]
- The numerical value of the current slider position, based on the slider's min and max settings.[inputval]
- The string value of the input field's current text.Tokens can be assigned to any object via its join number at runtime. These tokens can be set and retrieved at runtime only. For example, you can store the state state of something in a token applied to a button. Then when that button is pressed, use the token value as part of the command that the button sends, or even use the token within a math expression or JavaScript function that the button calls.
Tokens can be used throughout your guiDesigner project in a number of ways: