Methods and apparatuses to indicate off-platter weigh conditions

Example methods and apparatuses to indicate off-platter weigh conditions are disclosed herein. An example barcode reading and weighing apparatus includes a weigh platter; a scale; an off-platter detection assembly configured to detect an off-platter weigh condition; a processor in communication with the scale and the off-platter detection assembly; and a non-transitory machine-readable storage medium storing instructions that, when executed by the processor, cause the barcode reading and weighing apparatus to, responsive to detecting the off platter condition: compose a weight-conveying message, the weight-conveying message including (i) a weight-conveying field having the weight encoded therein and (ii) overhead information, the overhead information being operative, when the weight-conveying message is received by a POS system, to cause the POS system to not accept the weight for the transaction, the overhead information also not indicating the off-platter weigh condition to the POS system; and send the weight-conveying message to the POS system.

BACKGROUND

One of the main functions of a weigh platter and scale, whether used alone or in conjunction with a barcode reader at a point-of-sale (POS) system, is to accurately weigh produce or other products that are priced by weight in order to assist in determining the price of the produce or product. However, produce and products are varied in shape and size and there can be issues where part of the produce or product sits on a surface off of the weigh platter, extends off the weigh platter, etc., resulting in inaccurate weight measurement and, therefore, incorrect pricing. Therefore, there is a need to be able to identify and indicate such off-platter weigh conditions to the POS system.

SUMMARY

Methods and apparatuses to indicate off-platter weigh conditions are disclosed herein. Examples and combinations thereof include at least the following.

In an embodiment, the present invention is a barcode reading and weighing apparatus operable to communicate, via a previously defined protocol, with a point-of-sale (POS) system that is operable to execute a transaction associated with a purchase of an item, the apparatus comprising: a weigh platter; a scale configured to measure a weight of the item on the weigh platter; an off-platter detection assembly configured to detect a portion of the item resting on a surface off the weigh platter resulting in a detection of an off-platter weigh condition; a communication interface configured to communicate with the POS system; a processor in communication with the scale, the off-platter detection assembly, and the communication interface; and a non-transitory machine-readable storage medium storing instructions that, when executed by the processor, cause the barcode reading and weighing apparatus to, responsive to detecting the off platter condition: compose a weight-conveying message, the weight-conveying message including (i) a weight-conveying field having the weight encoded therein and (ii) overhead information, the overhead information being operative, when the weight-conveying message is received by the POS system, to cause the POS system to not accept the weight for the transaction, the overhead information also not indicating the off-platter weigh condition to the POS system; and send the weight-conveying message to the POS system via the communication interface.

In another embodiment, the present invention is a method of weighing an item with a barcode reading and weighing apparatus, the method comprising: determining a weight of an item on a weigh platter of the barcode reading and weighing apparatus; detecting whether a portion of the item is resting on a surface off the weigh platter resulting in a detection of an off-platter weigh condition; and when the off-platter weigh condition is detected: composing a weight-conveying message, the weight-conveying message including (i) a weight-conveying field having the weight encoded therein and (ii) overhead information, the overhead information being operative, when the weight-conveying message is received by a point-of-sale (POS) system, to cause the POS system to not accept the weight for the transaction, the overhead information also not indicating the off-platter weigh condition to the POS system; and sending the weight-conveying message to the POS system via a communication interface.

In yet embodiment, the present invention is a non-transitory machine-readable storage medium storing instructions that, when executed by the processor, cause a barcode reading and weighing apparatus to determine a weight of an item on a weigh platter of the barcode reading and weighing apparatus; detect whether a portion of the item is resting on a surface off the weigh platter resulting in a detection of an off-platter weigh condition; and when the off-platter weigh condition is detected: compose a weight-conveying message, the weight-conveying message including (i) a weight-conveying field having the weight encoded therein and (ii) overhead information, the overhead information being operative, when the weight-conveying message is received by a point-of-sale (POS) system, to cause the POS system to not accept the weight for the transaction, the overhead information also not indicating the off-platter weigh condition to the POS system; and send the weight-conveying message to the POS system via a communication interface.

DETAILED DESCRIPTION

Reference will now be made in detail to non-limiting examples, some of which are illustrated in the accompanying drawings.

The examples disclosed herein relate to methods and apparatuses to indicate off-platter weigh conditions for barcode reading and weighing apparatus, such as bioptic barcode readers, having off-platter detection assemblies to identify when an object extends off of a weigh platter of the barcode reading and weighing platter apparatus onto a nearby surface, and indicate such off-platter weigh conditions to a point-of-sale (POS) system of a retail store.

FIG.1illustrates an example barcode reading and weighing apparatus100, such as the Zebra® MP7000 bioptic barcode reader. The barcode reading and weighting apparatus100provides weights of weighed items and/or barcodes of scanned items to a POS system101. The barcode reading and weighing apparatus100conveys item weights by sending weight-conveying messages to the POS system101, wherein the weight-conveying messages are structured in accordance with a predefined protocol implemented by the barcode reading and weighting apparatus100and the POS system101. The POS system101executes retail transactions for weight-based items based on weight-conveying messages received from the barcode reading and weighing apparatus100.

FIG.2illustrates an example weight-conveying message200that may be generated by the weighing apparatus100for communication to the POS system101, inFIG.1. In the illustrated example, the weight-conveying message200includes an example header202and an example weight-conveying field204. Weights may be encoded in the weight-conveying field204using binary encoding, decimal encoding, etc. The header202includes overhead information (e.g., one or more bits, bytes, fields, etc.) that is operative (e.g., may be set to one or more states) to provide one or more secondary indications to the POS system101according to a predefined protocol implemented by the barcode reading and weighting apparatus100and the POS system101. Some predefined overhead status bits, bytes, fields, etc. are defined to indicate that a weigh condition exists that does or may result in a weight encoded in the weight-conveying field204being inaccurate. For example, a “scale in motion” status bit206of an example predefined protocol indicates that a weight encoded in the weight-conveying field204is or may be inaccurate because its weight is changing, fluctuating, etc. According to the predefined protocol, a POS system101receiving a weight-conveying message in which the “scale in motion” status bit206is set (e.g., set to a binary value of one) is to ignore a weight encoded in the weight-conveying field204. When a weight-conveying message in which the “scale in motion” status bit is cleared (e.g., set to a binary value of zero) is received and no other inaccurate weight indicating status bit is set, the POS system101may use the weight encoded in the weight-conveying field204to charge a customer for an item based on the weight. Other example status bits of predefined protocols that indicate that a weight encoded in the weight-conveying field204is or may be inaccurate include a “weight data not included” status bit, a “scale under zero” status bit, a “scale over capacity” status bit, and a “read error” status bit.

Existing predefined protocols for weight-conveying messages do not include indications for off-platter weigh conditions. Because an off-platter weigh condition results in an inaccurate, invalid, etc. weight, disclosed methods and apparatuses utilize or “hi-jack” a predefined overhead bit, byte, field, etc. that signifies an inaccurate weight, albeit due to another cause (e.g., scale in motion, etc.), to convey the off-platter weigh condition. While use of the predefined overhead bit, byte, field, etc. does not accurately convey the reason for the inaccurate weight to the POS system101, use of the predefined overhead bit, byte, field, etc. can still result in the POS system101typically taking an appropriate action (e.g., ignore the weight encoded in the weight-conveying field204) for an off-platter weigh condition.

In some examples, different POS systems101are implemented in accordance with different predetermined weight-conveying message protocols. However, the barcode reading and weighing apparatus100may be configurable to support different POS systems101and, thus, different predetermined protocols. In some examples, the barcode reading and weighing apparatus100can interact with the POS system101to automatically identify the POS system101and/or the predetermined weight-conveying protocol used by the POS system101. In some examples, the barcode reading and weighing apparatus100can be configured to the POS system101at, for example, installation by scanning a barcode associated with the POS system101. Additionally and/or alternatively, the POS system101may be identified based on information received from the POS system101(e.g., a signal, a message, overhead, etc.). The information may be received wirelessly and/or via a cable communicatively coupling the barcode reading and weighing apparatus100and the POS system101. Based on the identification of the POS system101, the barcode reading and weighing apparatus100can identify the predetermined weight-conveying protocol used by the POS system101, and then select and use or “hi-jack” one or more overhead bits, bytes, fields, etc. of the protocol that indicate an inaccurate weight, regardless of reason why, to indicate off-platter weigh conditions. In this way, off-platter weigh conditions can result in potentially inaccurate weights being ignored by POS systems101.

Returning toFIG.1, the barcode reading and weighing apparatus100can be configured to be physically supported by a workstation102, such as a checkout counter at a POS of a retail store. The barcode reading and weighing apparatus100has an example housing104that includes an example lower housing106that houses an example weigh platter assembly108, and an example upper housing110that extends generally perpendicular to the lower housing106. The upper housing110includes an example generally vertical window112to allow a first set of optical components positioned within the upper housing110to form a first field-of-view (FOV) through the vertical window112. In addition, if the barcode reading and weighing apparatus100is a bioptic barcode scanner, the lower housing106will include a generally horizontal window114, which is positioned in a weigh platter116of the weigh platter assembly108to allow a second set of optical components positioned within lower housing106to form a second FOV through the horizontal window114. The first FOV and second FOV intersect to define a product scanning region118of the barcode reading and weighing apparatus100where a product can be scanned for sale at the POS.

Although the weigh platter assembly108can be used with a barcode scanner or bioptic barcode reader, the weigh platter assembly108can be used with any type of scanner, reader or POS system101, or can be used as a stand-alone scale or weighing device. Whether used as part of a barcode reader, scanner or POS system101, or as a stand-alone scale or weighing device, the weigh platter assembly108will generally include the weigh platter116and an example scale120configured to measure the weight of an object placed on a surface122of the weigh platter116. The surface122extends in a first transverse plane and is generally or substantially parallel to an example top surface124of the workstation102that at least partially surrounds the weigh platter116.

To detect an off-platter weigh condition, the barcode reading and weighing apparatus100includes an example off-platter detection assembly126. The off-platter detection assembly126includes an example light emission assembly128, and an example light detection assembly130. An example processing platform132is in communication with the light emission assembly128and the light detection assembly130and/or, more generally, the off-platter detection assembly126. The processor platform132is in communication with a light source (not shown for clarity of illustration) of the light emission assembly128, and with a light sensor (not shown for clarity of illustration) of the light detection assembly130. If the light source of the light emission assembly128is configured by the processing platform132to emit light (e.g., one or more pulses of light), the processing platform132can process light detection information captured by the light detection assembly130to detect when a portion of an item, object, etc. is resting on a surface other than the surface122of the weigh platter116(e.g., on the top surface124of the workstation102) as an off-platter weigh condition, extends beyond edge of weigh platter116, etc. For simplicity, only a single light emission assembly128and only a single light detection assembly130are shown and described herein, however, it will be understood that off-platter detection assembly126can also include any number and/or type(s) of light emission assemblies, and any number and/or type(s) light detection assemblies may be implemented to detect off-platter weigh condition on different sides of the weigh platter116.

The example processing platform132includes a processor134such as programmable processor, a programmable controller, a graphics processing unit (GPU), a digital signal processor (DSP), etc. Alternatively, an application specific integrated circuit (ASIC), a programmable logic device (PLD), a field programmable gate array (FPGA), a field programmable logic device (FPLD), a logic circuit, etc. may be structured or configured to implement the processing platform132and/or the processor134. The processor platform132includes memory136to store software, logic, and/or machine-readable instructions that may be executed by the processor134. Example memory136includes any number or type(s) of non-transitory machine-readable storage medium or disk, such as a hard disk drive (HDD), an optical storage drive, a solid-state storage device, a solid-state drive (SSD), a read-only memory (ROM), a random-access memory (RAM), a compact disc (CD), a compact disc read-only memory (CD-ROM), a digital versatile disk (DVD), a Blu-ray disk, a cache, a flash memory, or any other storage device or storage disk in which information may be stored for any duration (e.g., permanently, for an extended time period, for a brief instance, for temporarily buffering, for caching of the information, etc.). The processing platform500shown inFIG.5may be used to implement the processing platform132.

To read, capture, scan, etc. machine-readable codes in the form of numbers and/or a pattern of parallel lines of varying widths, printed on and identifying a product (e.g., a barcode), the barcode reading and weighing apparatus100includes a barcode reader138, a scanner, etc. Barcodes read by the barcode reader138are provided to the processing platform132.

To communicatively couple the barcode reading and weighing apparatus100to other systems, such as the POS system101, the barcode reading and weighing apparatus100includes one or more communication interfaces, one of which is designated at reference numeral140. The processing platform132can communicate with other systems, such as a POS system101, via the communication interface140. The communication interface140may communicate with the POS system101wirelessly, and/or via a cable communicatively coupling the barcode reading and weighing apparatus100and the POS system101.

Weight-conveying messages, such as the message200ofFIG.2, may be sent by the processing platform132to the POS system101via the communication interface140. When the processing platform132detects an off-platter weigh condition, the processing platform132composes a weight-conveying message, and utilizes or “hi-jacks” a predefined overhead bit, byte, field, etc. of the weight-conveying message that signifies an inaccurate weight, albeit due to another cause (e.g., scale in motion, etc.), to convey the off-platter weigh condition to the POS system101. This weight-conveying message with the “hi-jacked” overhead bit, byte, field, etc. is sent to the POS system101to cause the POS system101to ignore any weight encoded in a weight-conveying field of the weight-conveying message, although the POS system101believes it is ignoring the weight for a condition other than an off-platter weigh condition.

In some examples, the processing platform132presents an indication of the off-platter weigh condition at the barcode reading and weighing apparatus100. The indication may indicate on which side of the weigh platter (e.g., right, left, front, back) a portion of the item is resting on another surface off the weigh platter116. Example indications include an audible alert beep, light emitted by a light-emitting diode (LED), an audible message played through a speaker, a message displayed on an external pole display, or an alpha-numeric character (e.g., “R”, “L”, etc.) displayed through a barcode scanner window (e.g., the window112), etc.

When the processing platform132does not detect an off-platter weigh condition, the processing platform132composes a weight-conveying message, but does not set or “hi-jack” the predefined overhead bit, byte, field, etc. of the weight-conveying message. This weight-conveying message, absent some other inaccurate weight condition causing an overhead bit, byte, field, etc. to be set, will enable the POS system101to charge a customer for an item based on the weight encoded in a weight-conveying field of the weight-conveying message.

While an barcode reading and weighing apparatus100is shown inFIG.1, one or more of the elements, processes, components, devices, etc. illustrated inFIG.1may be combined, divided, re-arranged, omitted, eliminated or implemented in any other way. Further, the barcode reading and weighing apparatus100may include one or more elements, processes, components, devices, etc. in addition to, or instead of, those illustrated inFIG.1, or may include more than one of any or all of the illustrated elements, processes, components, devices, etc.

A flowchart300representative of example processes, methods, logic, software, machine- or machine-readable instructions for implementing the barcode reading and weighing apparatus100is shown inFIG.3. The program ofFIG.3begins at block302. If the barcode reading and weighing apparatus100(e.g., the processing platform132) identifies a POS system (e.g., the POS system101), the barcode reading and weighing apparatus100identifies the pre-determined weight conveying protocol being used by the POS system (block304). In some examples, the barcode reading and weighing apparatus100interacts with the POS system101to automatically identify the POS system101and/or the predetermined weight-conveying protocol used by the POS system101. In some examples, the barcode reading and weighing apparatus100can be configured to the POS system101and/or the predetermined weight-conveying protocol used by the POS system101at, for example, installation by scanning a barcode associated with the POS system101and using a payload of the barcode to identify the POS system101and/or the predetermined weight-conveying protocol used by the POS system101. Additionally and/or alternatively, the POS system101and/or the predetermined weight-conveying protocol used by the POS system101may be identified based on information received from the POS system101(e.g., a signal, a message, overhead, etc.). The information may be received wirelessly and/or via a cable communicatively coupling the barcode reading and weighing apparatus100and the POS system101.

Based on the predetermined weight-conveying protocol used by the POS system101, the barcode reading and weighing apparatus100selects one or more predefined overhead bits, bytes, fields, etc. of the protocol that indicate an inaccurate weight for a reason other than an off-platter weigh condition (block306) to use to convey off-platter weigh conditions. Control then exits from the example program ofFIG.3.

A flowchart400representative of example processes, methods, logic, software, machine- or machine-readable instructions for implementing the barcode reading and weighing apparatus100is shown inFIG.4. The program ofFIG.4begins at block402. If the barcode reading and weighing apparatus100(e.g., the processing platform132) detects an item is on the weigh platter116(e.g., by registering a weight via the scale120) (block402), the processing platforms132accesses (e.g., reads, obtains, retrieves, etc.) the weight (block404) and encodes the weight into the weight-conveying field of a weight-conveying message (block406). If the off-platter detection assembly126detects an off-platter weigh condition (block408), the barcode reading and weighing apparatus100utilizes or “hi-jacks” (e.g., sets to a binary value of one) a predefined overhead bit, byte, field, etc. of the weight-conveying message (e.g., identified using the program ofFIG.3) that signifies an inaccurate weight, albeit due to another cause (e.g., scale in motion, etc.), to indicate to the POS system101that the weight should be ignored (block410). Otherwise, the barcode reading and weighing apparatus100does not “hi-jack” (e.g., set to a binary value of zero) the predefined overhead bit, byte, field, etc. (block412).

The barcode reading and weighing apparatus100sends the weight-conveying message to, for example, the POS system101via the communication interface140(block414). If a barcode or other product marking was identified by the barcode reader138, if an item was identified using computer vision, or a user identified an item by, for example, entering a code or selecting an item in a list (block416), the barcode reading and weighing apparatus100identifies the item to, for example, the POS system101via the communication interface140(block420). Control returns to block402to wait for another item to be placed on the weigh platter116or an item to be identified. Together and/or separately, the modified weight and/or the barcode can be used to charge for the item and/or verify the item.

Returning to block402, if an item is not on the weigh platter116(block402), control proceeds to block416to determine whether a barcode was identified (block416).

While the example flowchart ofFIG.4includes the detection and handling of barcodes, such functionality may be omitted.

The processes, methods, logic, software and instructions ofFIGS.3and4may be an executable program or portion of an executable program for execution by a processor such as the processor502ofFIG.5. The program may be embodied in software or instructions stored on a non-transitory machine- or machine-readable storage device, storage medium and/or storage disk such as a memory, a CD, a compact disc read-only memory CD-ROM, a hard drive, an SSD, a DVD, a Blu-ray disk, a cache, a flash memory, a ROM, a RAM, or any other storage device, medium or storage disk associated with the processor502in which information is stored for any duration (e.g., for extended time periods, permanently, for brief instances, for temporarily buffering, and/or for caching of the information). Further, although example programs are described with reference to the flowchart300illustrated inFIG.3and the flowchart400illustrated inFIG.4, many other methods of implementing the barcode reading and weighing apparatus100may alternatively be used. For example, the order of execution of the blocks may be changed, and/or some of the blocks described may be changed, eliminated, or combined. Additionally, or alternatively, any or all of the blocks may be implemented by one or more hardware circuits (e.g., discrete and/or integrated analog and/or digital circuitry, an ASIC, a PLD, an FPGA, an FPLD, a logic circuit, hardware logic, hardware implemented state machines, etc.) structured to perform the corresponding operation without executing software or instructions.

FIG.5is a block diagram representative of an example logic circuit capable of implementing, for example, one or more components of the example processing platform132and/or, more generally, the barcode reading and weighing apparatus100ofFIG.1. The example logic circuit ofFIG.5is a processing platform500capable of executing instructions to, for example, implement operations of the example methods described herein, as may be represented by the flowcharts of the drawings that accompany this description. Other example logic circuits capable of, for example, implementing operations of the example methods described herein include field programmable gate arrays (FPGAs) and application specific integrated circuits (ASICs).

The example processing platform500of FIG. includes a processor502such as, for example, one or more microprocessors, controllers, and/or any suitable type of processor. The example processing platform500ofFIG.5includes memory (e.g., volatile memory, non-volatile memory)504accessible by the processor502(e.g., via a memory controller). The example processor502interacts with the memory504to obtain, for example, machine-readable instructions stored in the memory504corresponding to, for example, the operations represented by the flowcharts of this disclosure. Additionally or alternatively, machine-readable instructions corresponding to the example operations described herein may be stored on one or more removable media (e.g., a CD, a DVD, removable flash memory, etc.) that may be coupled to the processing platform500to provide access to the machine-readable instructions stored thereon.

The example processing platform500ofFIG.5also includes a network interface506to enable communication with other machines via, for example, one or more networks. The example network interface506includes any suitable type of communication interface(s) (e.g., wired and/or wireless interfaces) configured to operate in accordance with any suitable protocol(s). The network interface506may be used to implement the communication interface140.

The example, processing platform500ofFIG.5also includes input/output (I/O) interfaces508to obtain weights from the scale120, obtain off-platter weigh condition indications, interact (e.g., control and receive data from) with barcode reader138, interact the off-platter detection assembly126, interact with the light emission assembly128, interact the light detection assembly130, to interact with the POS system101, to enable receipt of user input and communication of output data to the user, etc. The I/O interfaces508may be used to implement the communication interface140.

AlthoughFIG.5depicts the I/O interfaces508as a single block, the I/O interfaces508may include a number of different types of I/O circuits or components that enable the processor502to communicate with peripheral I/O devices. Example I/O interfaces508include a universal serial bus (USB), a Bluetooth® interface, a near field communication (NFC) interface, and/or a PCI Express interface. The peripheral I/O devices may be any desired type of I/O device such as a keyboard, a display (a liquid crystal display (LCD), a cathode ray tube (CRT) display, a light emitting diode (LED) display, an organic light emitting diode (OLED) display, an in-place switching (IPS) display, a touch screen, etc.), a navigation device (a mouse, a trackball, a capacitive touch pad, a joystick, etc.), a speaker, a microphone, a printer, a button, a communication interface, an antenna, etc.

The embodiments disclosed herein can be particularly advantageous in that a POS system may be caused to ignore a potentially inaccurate weight without having to report a weight that is different than the weight actually recorded by the weight platter and scale. Thus, the methods and apparatuses disclosed herein may be advantageously practiced even in the presence of regulations regarding the reporting of weights.