RING SCANNER LANGUAGE (RISL) INTERPRETER

A custom designed programming language for a ring scanner is disclosed. The ring scanner language, also referred to as RISL, is uniquely designed to meet the requirements and needs of ring scanners. It is meant to be a light weight language that can be written through one or more commands to generate custom screens/interfaces/cards of the ring scanner.

BACKGROUND

Field

The field is generally related to scanning devices.

Related Art

Optical labels, such as barcodes, represent data in a visual, machine-readable format. One type of barcode, known as linear or one-dimensional (1D) barcodes, can represent data by varying the widths and spacing of parallel lines. Another type of barcode, known as matrix codes, two-dimensional (2D) barcodes, or QR codes, use rectangles, dots, hexagons and other patterns to represent data.

Barcodes have many applications. In stores, universal product code (UPC) barcodes are pre-printed on most items and are used for inventory and to check out. Barcodes are used in healthcare and hospital settings, for things like patient identification (to access patient data, including medical history, drug allergies, etc.). They can also be used to keep track of objects and people; they are used to keep track of rental cars, airline luggage, nuclear waste, registered mail, express mail and parcels. Barcoded tickets allow the holder to enter sports arenas, cinemas, theatres, fairgrounds, and transportation, and are used to record the arrival and departure of vehicles from rental facilities, etc.

A barcode reader (or barcode scanner) is an optical scanner that can read printed barcodes, decode the data contained in the barcode and send the data to a computer. One type of handheld scanner is gripped in a user's palm. With these handheld barcode scanners, the user encloses the handle with all five fingers and uses the trigger button to activate the scanner, like the operation of a handgun. One downside of handheld barcode scanners is that the user of the scanner has to put down the scanner to use his hand. If the user is transporting packages or taking inventory, having to repeatedly put down and pick up the scanner can result in lost productivity.

To reduce this inefficiency, ring scanners operate by looping around at least one finger, enabling an operator to continue using both hands while carrying the scanner. In this way, workers can continue to use both hands when climbing ladders or stairs, handling large items, or operating machinery.

Ring scanners must be programmed to perform their functions. One option for programming ring scanners is to use standard programming languages to code the various functions. The problem with standard programming languages is that they do not have built in methods and functions designed to accommodate the specialized functions performed by ring scanners. Therefore, it is desirable to have a custom programming language specifically designed for ring scanners.

BRIEF SUMMARY

A non-transitory computer readable medium and ring scanner are disclosed, which store a custom programming language to enable operation of the ring scanner. The custom programming language, which will also be referred to as the Ring Scanner Language or RISL throughout this application, is designed specifically for use with ring scanners. Thus, RISL takes into account and is designed to accommodate the specialized form factor, display size, and functionality required of ring scanners. RISL provides a light weight language that is designed to take into account the memory constraints of a ring scanner. Thus, it is not memory intensive to store the language. It is also designed so that it can be easily written by non-technical persons. This is achieved because the language is designed as a set of commands that can be written in a simplified script type format, where each command can be written as a string. In aspects, the string can be formatted as:[symbol][command name][delimiter][parameters], where,[symbol] can be a mark or character used as a conventional representation of an object, function, or process, and it can signal the beginning of a command,[command name] can be a string indicating a name of a command,[delimiter] can be a mark or character specifying a boundary between the [command name] and [parameters], and[parameters] can be an input value for defining an operation of the one or more commands.

In aspects, commands can be strung together a computer files, such as text files, which can be read by one or more computing devices of the ring scanner, and can be used as input to define screens of the ring scanner, or set the control functions of the ring scanner. In aspects, the commands can enable customization and setting of at least:Screens that are displayed on a display of the ring scanner,A screen width and screen height of custom screens of the ring scanner,A font of custom screens of the ring scanner,A text of the custom screens of the ring scanner,Icons for the custom screens of the ring scanner, andA color of the custom screens of the ring scanner.

In aspects, the commands can also enable at least:Generating custom screens to be displayed on a display of the ring scanner,Saving custom screens generated,Loading custom screens of the ring scanner,Searching for custom screens of the ring scanner,Setting placeholders within a custom screen, where the placeholders can be populated with custom information in place of the placeholder at a later time,Setting an audio output based on a triggering event of a custom screen,Setting a haptic output based on a triggering event of a custom screen, andAllowing deletion of custom screens of the ring scanner.

Other functions in addition to or in place of those mentioned above can be implemented by RISL. The functions will become apparent to those skilled in the art from a reading of the following detailed description when taken with reference to the accompanying drawings.

The drawing in which an element first appears is typically indicated by the leftmost digit or digits in the corresponding reference number. In the drawings, like reference numbers may indicate identical or functionally similar elements. The drawings are illustrative and may not be to scale.

DETAILED DESCRIPTION

Ring Scanner Architecture

FIGS.1A and1Bare diagrams illustrating a ring scanner in operation, according to aspects.FIG.1Ashows a diagram100with a user/operator having a hand104and forearm102. Hand104is gripping a ring scanner112. Ring scanner112has a display108and an optical scanner110.

As may be seen in diagram100, ring scanner112has a loop116through which an index finger118and a middle finger120pass through to grip and hold ring scanner112. Loop116is configured to be gripped by index finger118and middle finger120. It presses against the palmar side of index finger118and middle finger120. Because loop116enables an operator to grip ring scanner112with just a loop around the operator's fingers, the operator maintains use of his or her hands. For example, the operator can continue to use his or her hands to operate equipment, carry packages, and climb ladders.

According to an aspect, loop116is configured to be gripped by index finger118and middle finger120such that the palm is in a neutral position when the optical detector is oriented in an upright direction. In this way, a user need not pronate the hand when transitioning from using the hand to grip a package from the package's side to scanning the optical label. The user's forearm102need not twist when scanning. Avoiding twisting in this way, the operator can avoid fatigue, discomfort, pain, and even possible injury.

Display108is an output device for presentation of information in visual form. It outputs information that is supplied to it from a computing device (not shown) in ring scanner112by converting electrical signals into light. In different aspects, display108may be an electroluminescent (ELD) display, liquid crystal display (LCD), light-emitting diode (LED) backlit LCD, thin-film transistor (TFT) LCD, light-emitting diode (LED) display, OLED display, AMOLED display, plasma (PDP) display, quantum dot (QLED) display, or electronic paper, such as E INK paper available from E Ink Corporation of Cambridge, Massachusetts.

Optical scanner110is an optical scanner that can read printed optical labels such as barcodes or can scan images of objects or take pictures of the objects, decode the data contained in the optical label, and send the data to a computer. It may include a light source, a lens, and a light sensor translating for optical impulses into electrical signals. In different aspects, optical scanner110may be a pen-type reader, a laser scanner, a charge-coupled device (CCD) reader, a light emitting diode (LED) scanner, a camera-based reader, a video camera reader, a large field-of-view reader, or an omnidirectional barcode scanner.

FIG.1Bshows a diagram150illustrating ring scanner112from a different perspective. As shown in diagram100, ring scanner112is in this position to project light154to capture a barcode156on package152.

As shown in diagram150, barcode156is oriented in a horizontal direction, read left to right or right to left. Barcode156is a linear dimensional (1D), one dimensional barcode with its lines running vertical to ground. In other aspects, barcode156may be two-dimensional and use rectangles, dots, hexagons and other patterns. In other aspects, the package152itself may be scanned as an image/picture.

As shown in diagram150, when positioned to capture barcode156in an upright direction the user's palm of hand104is oriented substantially vertically. The palm of hand104is orthogonal to the ground.

As shown in diagram150, ring scanner112includes a body piece166, which includes an upper body portion162and a lower body164. Upper body portion162rests on a portion of index finger118facing a thumb106of hand104. Lower body164covers a dorsal side of index finger118and middle finger120of hand104. Upper body portion162and lower body164are affixed to one another and angled to cover at least a portion of the thumb-facing side of index finger118and the dorsal side of middle finger120. Together with loop116, upper body portion162and lower body portion164encircle index finger118and middle finger120. More specifically, together with loop116(labeled inFIG.1A), upper body portion162and lower body164may encircle a middle phalanx portion index finger118and middle finger120.

Upper body portion162includes a plurality of buttons122that, when selected, causes ring scanner112to perform certain actions. Each of the plurality of buttons122may be a switch mechanism with a surface that may be depressed, or pushed, by a finger. When the surface is depressed, an electrical signal is sent to input information and possibly trigger an action. Each of the plurality of buttons122may have a spring to return to their un-pushed state. Other types of buttons may be used as well, such as virtual buttons presented on a touchscreen display.

As will be described below, the plurality of buttons122may cause optical scanner110to activate and scan barcode156or may input data into a computing device controlling aspects of ring scanner112. The plurality of buttons122are positioned on ring scanner112to be selected by thumb106.

In particular, buttons122are positioned to be selected by thumb106when hand104is gripping a ring scanner112, and index finger118and middle finger120are bent. According to an aspect, buttons122are positioned to be selected when index finger118and middle finger120are bent at a proximal interphalangeal joint160. Proximal interphalangeal joint160sits between a middle phalanx and proximal phalanx of index finger118and middle finger120. Bending at proximal interphalangeal joint160may be more ergonomical than bending other joints, such as the metacarpophalangeal joint of index finger118and middle finger120.

Display108may be a touchscreen display. A touchscreen display is an assembly of both an input (touch panel) and output (display) device. The touch panel may be layered on the top of the output electronic visual display. A user can give input, or can control a computing device (not shown) in ring scanner112through simple or multi-touch gestures by touching the screen with a special stylus or one or more fingers. In different examples, a touch panel may be a resistive touchscreen panel, a surface acoustic wave (SAW) touch panel, a capacitive touchscreen panel, or an infrared touchscreen panel.

When display108is a touchscreen display, display108will also be positioned such that at least a portion of display108may be selected by thumb106when hand104is gripping a ring scanner112, and index finger118and middle finger120are bent at the proximal interphalangeal joint160. Display108is configured to output visually from the computing device.

FIGS.2A and2Bare schematic diagrams illustrating the ring scanner112in greater detail, according to aspects.FIG.2Aillustrates a front three-quarter view200of ring scanner112. As shown from this perspective, ring scanner112includes a battery206, power button202, strap204, and semi-rigid portion208.

Battery206is a device including one or more electrochemical cells to provide power for ring scanner112. In an example, battery206may be a lithium-ion battery. According to an aspect, battery206may be removable so that it may be swapped out with fully charged batteries when battery206is depleted. Additionally or alternatively, battery206could be internal to device212and not removable. Battery206may be rechargeable.

Power button202is a button that, when selected, causes ring scanner112to power on or off. When ring scanner112powers on, electricity is delivered from battery206to components of ring scanner112, such as optical scanner110, display108, and other hardware components as will be discussed in greater detail with respect toFIG.4.

Strap204is a ribbon used to fasten ring scanner112to the operator's fingers. As described above, strap204, in conjunction with other components of ring scanner112may encircle an operator's fingers. Strap204may be made of nylon webbing, leather or other flexible materials. It also may be an adjustable strap positioned to encircle the at least one finger.

Semi-rigid portion208protrudes from upper portion162and is situated behind strap204, in particular between strap204and the operator's fingers (not shown). Semi-rigid portion208may be flexible such that, as strap204is tightened, the tightened strap may pull semi-rigid portion208to tighten on the operator's fingers. Semi-rigid portion208may serve to allow strap204to be tightened, enabling the operator to maintain a tight grip on ring scanner112without irritating the operator's fingers. In an aspect, semi-rigid portion208may be made of rubber or a rubber-like material. In illustrative examples, semi-rigid portion208may be made of Thermoplastic Polyurethane (TPU), Thermoplastic Elastomer (TPE), butyl (IIR), nitrile (NBR), Neoprene® (CR), Ethylene Propylene Diene Monomer (EPDM), Silicone (Q), or Viton®.

FIG.2Billustrates a rear three-quarter view250of ring scanner112. As may be seen from this perspective, ring scanner112includes a speaker252and plurality of buttons122.

Speaker252is a device which converts an electrical audio signal into a corresponding audible sound. Example speakers include moving-iron loudspeakers, piezoelectric speakers, magnetostatic loudspeakers, electrostatic loudspeakers, ribbon and planar magnetic loudspeakers, bending wave loudspeakers, flat panel loudspeakers, Heil air motion transducers, transparent ionic conduction speakers, plasma arc speakers, thermoacoustic speakers, rotary woofers, moving-coil, electrostatic, electret, planar magnetic, and balanced armature. The speaker252can also include a microphone integrated therewith to receive audio inputs.

As illustrated inFIG.2B, buttons122includes three buttons: left button256, right button254, and center button258. Left and right buttons (256and254) may input selections into a computing device (not shown) in ring scanner112. This may cause an action to be specified by an application executed by the computing device. In one example, the application may display a menu on display108and selecting buttons254and256may enable a user to navigate through lists or menus. In this way, aspects enable interactive applications to be executed by the ring scanner112.

Center button258is configured to, when selected, activate optical scanner110to read a barcode or scan an image. It also may send input data to the computing device of the ring scanner112.

Left button256, right button254, and center button258can also be used in a communication mode of the ring scanner112. For example, selecting each of these buttons can provide a different functionality when the ring scanner112is in the communication mode. The functionality can include, for example, enabling/disabling a telephone call, enabling recording of a voice message, skipping forward and backward through voice messages, etc.

FIG.3is a cross section of the ring scanner112, according to aspects. Housing308is a protective exterior (e.g., shell) or an enclosing structural element (e.g., chassis or exoskeleton) designed to enable easier handling, provide attachment points for internal mechanisms (e.g., mounting brackets for electrical components, cables, and pipings), maintain cleanliness of the contents by shielding dirt/dust, fouling and other contaminations, or protect interior mechanisms (e.g., delicate integrated electrical fittings) from structural stress and/or potential physical damage.

The interior of housing308includes a cavity304that contains various electronic components, as illustrated inFIG.4. Housing308includes an opening310, display108, and other openings, such as an opening for a charging port302when charging the battery206.

Charging port302is configured to electrically couple ring scanner112to a cradle, and positioned directed toward the loop116. Charging port302may be a USB port as discussed with respect toFIG.4below. Ring scanner112may include at least one magnet (not shown) positioned to align the charging port to the cradle to enable electrical coupling.

Alternatively or additionally, ring scanner112may be capable of wireless charging. For example, ring scanner112may have a silicon chip that receives a beacon signal to charge the device. For example, the chip may enable a power transmitter to locate a device and transmit power directly to the device, along the path used to detect the chip. This path based functionality may allow the wireless power transmitter to continuously and safely send power when needed. In examples, ring scanner112may use the COTA power transmitter/receiver available from Ossia Inc. of Bellevue, WA or the WattUp power transmitter/receiver available from Energous Corporation.

FIG.4is an architecture diagram400illustrating hardware components of the ring scanner112, according to aspects. As discussed with respect to previous figures, diagram400includes display108, optical scanner110, buttons122, battery206, and speaker252. In addition to those components, diagram400includes a processor402, memory404, light sensor408, wired terminal416, vibrator422, Bluetooth interface426, Wi-Fi interface424, and a motion sensor428. Each of these components ofFIG.4is enclosed within housing308shown inFIG.3.

Bus428is a communication system that transfers data between the hardware components of a ring scanner112. In addition to transferring data, bus428may also transfer electrical power, such as from battery206to other components. In this way, bus428communicatively and electrically couples the various components.

It may be appreciated for those skilled in the art that a plurality of signal lines or buses may exist, thus different components may be linked by different signal lines or buses, and that a signal line or bus depicted in the schematic diagram may represent a plurality of such.

Memory404may include random access memory (RAM) and may also include nonvolatile memory, such as read only memory (ROM) and/or flash memory. Memory404may be embodied as an independent memory component, and may also be embedded in another component, such as processor402, or may be embodied as a combination of independent as well as embedded, and/or a plurality of memory components. Memory404is adapted to include software modules (a module is a set of instructions) or RISL.

Processor402is adapted to run instructions stored in memory404. Processor402may be a micro-controller unit (MCU), a digital signal processor (DSP) and/or an Image/Video Processing unit or the like components that run instructions. An example of an MCU is MSP432P401x, available from Texas Instruments Inc. of Dallas, Texas. An example of a DSP is C5000, available from Texas Instruments Inc. An example of an image/video processor is OMAP3525, available from Texas Instruments Inc. One or more processors may be present. Processor402may be an independent component; it may also be embedded in another component, such as in light sensor/camera408, or any combination thereof.

Wired terminal416is adapted to attach to a wired network, including, but not limited to, Ethernet, USB, or thunderbolt.

Diagram400includes two wireless interfaces, Wi-Fi interface424and Bluetooth interface426. Wi-Fi interface424may provide a network interface accessible by applications running on processor402. Bluetooth interface426may be adapted to enable the ring scanner112to interact with peripheral devices, such as headsets (not shown).

Light sensor408is a photodetector. It is a sensor of light. A photo detector has a p-n junction that converts light photons into current. The absorbed photons make electron—hole pairs in the depletion region. Photodiodes and phototransistors are a few examples of photo detectors. In a different example, light sensor408may be a photoemission or photoelectric effect photodetector, thermal photodetectors, polarization photodetectors, or photochemical photodetectors. Light sensor408may be integrated into a camera of the ring scanner112.

In an example operation, light sensor408may signal to processor402when light is detected. Processor402, in turn, may adjust the brightness of display108automatically. Adjusting brightness in this way may have the effect of conserving power in battery206.

Vibrator422is a device that causes vibration when receiving a specified signal from processor402. Vibrator422is a mechanical device to generate vibrations or haptic feedback. To generate the vibrations, vibrator422may include an electric motor with an unbalanced mass on its driveshaft. Vibrator422may be a vibrating structure gyroscope implemented as a microelectromechanical system (MEMS).

Speaker252is coupled to processor402and is configured to cause the ring scanner112to emit sound as specified by commands from processor402. In this way, speaker252may provide audio to a user of the ring scanner112as specified by an application executed on processor402. In aspects, a microphone can be integrated with the speaker252to allow the speaker252to also receive audio inputs. For example, speaker252can function to receive audio inputs to allow the ring scanner112to operate as a walkie-talkie or as a telephone. For example, in aspects the Wi-Fi interface424and/or Bluetooth interface426can couple to the speaker252and can allow the ring scanner112to operate as a phone or walkie-talkie using voice over IP (VoIP) technologies, or may be integrated into cellular/telephony circuitry installed on the ring scanner112to allow the ring scanner112to integrate telephone operations and capabilities.

The buttons122may send commands to the processor402, or other components such as optical scanner110. When a user presses one of the buttons122, a signal may be sent to processor402. That signal may cause an interrupt command in the software application executed by processor402, causing processor402to run specific commands that an application specifies to correspond to that button input. In this way, using buttons122, a user can trigger actions as specified by the application executed by processor402.

In response to inputs it receives from buttons122, processor402can output information to display108as specified by a software application executed by processor402. In addition, as mentioned above, display108may be a touchscreen display. In this way, interactive applications may be implemented within the ring scanner112.

In addition, not shown, other input devices may be included, such as a radiofrequency identification (RFID) reader and a near field communication (NFC) reader. RFID uses electromagnetic fields to automatically identify and track tags attached to objects. An RFID system consists of a tiny radio transponder, a radio receiver and transmitter. When triggered by an electromagnetic interrogation pulse from RFID reader, an RFID tag transmits digital data back to the reader. A NFC reader may allow for collection of payment data from an EMV chip or from a user's mobile device (not shown).

In examples, these NFC and RFID readers may be used for login purposes. An operator can swipe her badge in the vicinity of a ring scanner112having these features and the ring scanner112can log her in using the information received from the NFC chip or the badge. Then, when the operator is using the ring scanner112, any scanned items are tracked with an identification of the operator who logged into the ring scanner112.

Motion sensor428may be part of a circuitry or a standalone component that can detect the orientation of the ring scanner112. For example, the motion sensor428may be an accelerometer, gyroscope, or a combination thereof that can by itself, or as part of an integrated circuit, determine the orientation of the ring scanner112in a three-dimensional space. For example, in aspects, the motion sensor428can detect an inclination angle of the ring scanner112to measure the orientation of the ring scanner112with respect to the ground. The inclination angle refers to the angle between the front plane that the optical scanner110is facing and the X-axis, where the X axis is parallel to the ground. In aspects, the detection of the inclination angle and determining what the angle is can allow the ring scanner to set an operating mode.

The Ring Scanner Language (RISL)

In order to operate, the ring scanner112needs to be programmed. What is disclosed is a custom programming language for the ring scanner112. The custom programming language, RISL, is designed specifically for use with scanners, especially ring scanners. Thus, RISL takes into account and is designed to accommodate the specialized form factor, display size, and functionality required of the ring scanner112. RISL provides a light weight language that is designed to take into account the memory constraints of ring scanner112. Thus, it is not memory intensive to store the language. It is also designed so that it can be easily written by non-technical persons. This is achieved because the language is designed as a set of commands that can be written in a simplified script format, where each command can be written as a string. In aspects, the string can be formatted as:[symbol][command name][delimiter][parameters], where,[symbol] can be a mark or character used as a conventional representation of an object, function, or process, and it can signal the beginning of a command,[command name] can be a string indicating a name of a command,[delimiter] can be a mark or character specifying a boundary between the [command name] and [parameters], and[parameters] can be an input value for defining an operation of the one or more commands. the [parameters] can be added sequentially and separated by a [delimiter] if the command takes more than one [parameters].

In aspects, [symbol] can be any symbol or character, such as an accent mark, a circumflex accent, a forward slash, a backwards slash, a hyphen, etc. In aspects, [command name] can be any character string specifying a command name. The specific commands and command names will be discussed further below. In aspects, [delimiter] can also be any symbol or character, different from [symbol], so as to not cause overlap or confusion of how it is interpreted by the computing devices of the ring scanner112. In aspects, the [delimiter] can be used to signify the boundary between the [command name] and [parameters], and can indicate that the values that come after the [delimiter] are values, parameters, or variables of the commands, if the command has input parameters that define it.

In aspects, commands can be strung together a computer files, such as text files, which can be read and processed by one or more computing devices (e.g., processor402) of the ring scanner112, and can be used to define screens of the ring scanner112, or set the control functions of the ring scanner112. In aspects, the commands can enable customization and setting of at least:Screens that are displayed on a display (e.g., display108) of the ring scanner112,A screen width and screen height of custom screens of the ring scanner112,A font of custom screens of the ring scanner112,A text of the custom screens of the ring scanner112,Icons/buttons for the custom screens of the ring scanner112, andA color of the custom screens of the ring scanner112.

In aspects, the commands can also enable at least:Generating custom screens to be displayed on a display (e.g., display108) of the ring scanner112,Saving custom screens generated,Loading custom screens of the ring scanner112,Searching for custom screens of the ring scanner112,Setting placeholders within a custom screen, where the placeholders can be populated with custom information in place of the placeholder at a later time,Setting an audio output based on a triggering event of a custom screen,Setting a haptic output based on a triggering event of a custom screen, andAllowing deletion of custom screens of the ring scanner112.

The various commands of RISL will be described in more detail in Table 1 below. Table 1 is not meant to be limiting, but describes the current set of commands of RISL. A person of ordinary skill in the art will recognize that as functionality evolves for ring scanners, commands can be added to the list. Thus, the list of commands is meant to serve as a baseline for RISL based on the current state of ring scanner112technology.

The commands in Table 1 will be described by giving the name of the command, a description of the command, and describing how the command is used in conjunction with other commands. The format column describes how the command is called. The parameters column describes what parameters the command takes. In the table below it is assumed that the [symbol] is a circumflex accent represented by “A”. It is also assumed that the [delimiter] is a vertical line represented by “1”.

In aspects, the commands can be used in conjunction with an application that can act as the graphical user interface (GUI) for the ring scanner112. The GUI has been described in U.S. application Ser. No. ______, filed on Nov. 3, 2023, the contents of which is incorporated by reference herein in its entirety. The application can utilize RISL to generate the custom screens/cards of the ring scanner112and to set the functionality of each of the custom screens/cards described in the aforementioned application.

FIG.5shows a system level diagram500of where RISL resides within the architecture of the ring scanner112, according to aspects. In aspects, RISL can be written into computer-readable files, such as text files, by a programmer of the ring scanner112. InFIG.5, the files are shown as {504a,504b,504c,504d}. In aspects, there can be a number of RISL files each with its own set of commands that can be processed by the computing devices (e.g., the processor402of the ring scanner112). When processed, RISL files can be compiled by a RISL interpreter502, which is similar to a compiler but designed to interpret RISL into machine understandable byte code, that can translate the commands into machine understandable code that the ring scanner112can then use to carry out the commands written (such as to generate the various custom cards that are displayed on the display108of the ring scanner112).FIGS.6A and6Bshow custom cards that can be generated using RISL.FIG.6Ashows a custom card602showing three different text commands. The custom card602can be displayed on display108. The card shown inFIG.6Acan be generated using RISL commands shown in command set (1):

Command set (1) creates card602with three different text commands. The first one occurs before any font is defined so it uses the default font. It is indicated by the text “HelloWorld,” which is shown as left justified with font size10. After the first text command, a red and bold font is defined, which is applied to the text “CenteredText,” and is centered. Finally, a new font and text are defined that is right justified, bold and italic, and is applied to the text “1234xxx5678.”

FIG.6Bshows a custom card604. Card604can be displayed on display108. The card shown inFIG.6Bcan be generated using RISL commands shown in command set (2):

InFIG.6B, the background of card604is set to a bright red to get the user's attention while making sure the font is size48and bold. Card604also sets a vibration and a sound to be played when card604is displayed. The vibration is set to “2” and the sound is set to “Bad.”

FIG.7shows a dashboard712that can be used by a programmer to interface with the ring scanner112via a remote system (remote servers, computers, etc.), according to aspects. In aspects, the dashboard712can be accessed via a web browser on the remote system. In aspects, the dashboard712can display information about the ring scanner112and can also be used to send RISL commands to the ring scanner (as shown in box706). For example, the dashboard712can display different RISL cards that are stored on the ring scanner112(as shown by boxes702and704), a last message received by the ring scanner112(as shown by box708), a last image received by the ring scanner112(as shown in box710), and a section where RISL commands can be sent to the ring scanner112(as shown in box706).

In aspects, the connection between the ring scanner112and the remote system running the dashboard712can be over Wi-Fi via the Wi-Fi interface424or over Bluetooth via the Bluetooth interface426.

In aspects, the dashboard can be accessed by inputting a uniform resource locator (URL) onto a web browser of the remote system. The URL can then take a user/programmer to a screen where the user/programmer can enter the identification number or name of a particular ring scanner112that he or she wants to view information about. In aspects, once the identification name or number is input, a dashboard like the one shown inFIG.7can populate the browser.

Dashboard712shows a box702, which is an area that shows sample RISL cards that are stored on the specific ring scanner112. Boxes704show the sample RISL cards on the particular ring scanner112. In aspects, these RISL cards can be modified, added to, deleted using box706, in which the user/programmer can send RISL commands to the ring scanner112. In aspects, box708can show a last message received by the ring scanner112. The last message received can be the result of a scan of a barcode, an image, and/or input received via a RISL card. In aspects, the dashboard712can also show the last image received by the ring scanner112. Box710shows, the last image received as a barcode that was scanned. The last image can also be an image scanned by a camera of the ring scanner112.

The disclosed RISL provides a unique programming language specific to ring scanners. RISL takes into account and is designed to accommodate the specialized form factor, display size, and functionality required of ring scanners. RISL provides a light weight language that is designed to take into account the memory constraints of a ring scanner112. It does not require extensive memory to store the language. It is also designed so that it can be easily written by non-technical persons. The commands can be entered as strings in a text file, which can be loaded onto the ring scanner112and executed by one or more processors of the ring scanner112to generate the custom screens/cards. In this way, ring scanners can be easily programmed and modified without the need to know or have knowledge of traditional programming languages.

The above detailed description and aspects of the disclosed ring scanner112and RISL are not intended to be exhaustive or to limit the disclosed ring scanner112or RISL to the precise form disclosed above. While specific examples are described above for illustrative purposes, various equivalent modifications are possible within the scope of the disclosed ring scanner112and RISL, as those skilled in the relevant art will recognize. For example, while processes are presented in a given order, alternative implementations may perform routines having steps, or employ systems having processes or methods, in a different order, and some processes or methods may be deleted, moved, added, subdivided, combined, or modified to provide alternative or sub-combinations. Each of these processes or methods may be implemented in a variety of different ways. Also, while processes or methods are at times shown as being performed in series, these processes or blocks may instead be performed or implemented in parallel, or may be performed at different times.

The resulting process, apparatus, device, product, and ring scanner112is cost-effective, highly versatile, and accurate, and may be implemented by adapting components for ready, efficient, and economical manufacturing, application, and utilization. Another important aspect of the present disclosure is that it valuably supports and services the historic trend of reducing costs, simplifying systems, and increasing performance.

These and other valuable aspects of the present disclosure consequently further the state of the technology to at least the next level. While the disclosed aspects have been described as the best mode of implementing the ring scanner112, it is to be understood that many alternatives, modifications, and variations will be apparent to those skilled in the art in light of the descriptions herein. Accordingly, it is intended to embrace all such alternatives, modifications, and variations that fall within the scope of the included claims. All matters set forth herein or shown in the accompanying drawings are to be interpreted in an illustrative and non-limiting sense.