feat(inventory): Phase 1 - scan and validate UPC barcodes #1

Open
lyrathorpe wants to merge 54 commits from feat/inventory-phase1-scan into main
17 changed files with 200972 additions and 0 deletions
Showing only changes of commit 538705a807 - Show all commits
+24890
View File
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+161
View File
@@ -0,0 +1,161 @@
CHAPTER 11
HARDWARE REFERENCE
Note: This document is a beta version and may be subject to change.
About this chapter
This chapter presents the details of some of the new hardware present in the Psion Series 3c and Siena
machines.
The 15-way SIBO/RS232 connector
Four distinct types of signal are brought in/out via this connector:
e RS232 level serial data and handshaking lines
e Power in to provide operating power.
e A SIBO serial channel at 3V logic levels, to provide an interface to ASIC4/5 based peripherals
e 5V power out to power non self-powered peripherals.
Not all of these signals are relevant to both machines; the split being:
The board mounted connector is a Honda type with custom polarisation. The diagram below shows the
pinout of this connector:
11-1
SIENA/SERIES 3C UPGRADE
The pins on the connector have the following functions:
Siena Vin at +6Vd.c., 10% —
Series 3c 5V Power out, 30mA maximum.
RTS (RS232)
DTR (RS2372)
TXD (RS232)
DSR (RS232)
DCD (RS232)
CTS (RS232)
RXD (RS2372)
0 mn nNn nn fF W WN
SDOE - SIBO data direction control.
o
EXTSTAT - active low SIBO peripheral detect line.
ee
ee
EXON - SIBO external turn-on
=
N
INT - SIBO peripheral interrupt
Ww
SD - SIBO serial data
_
Ts
SCK - SIBO data clock
—-
—s
—>
a
+
ad
—_—-
=
Nn
GND - Signal and Power ground
GND - Shield frame ground
Key: Out of machine _,
Into machine —
Ground —
e The SIBO lines on the Series 3c are not intended to be used for peripherals. They are present
on the unit for test purposes only.
e The SIBO lines on the Siena are intended for use with the external SSD drive only, and are
filtered to match that peripheral.
e It should be particularly noted that the SIBO lines on pins 9-14 on both machines are at 3V logic
levels, as opposed to the 5V levels present on the Series 3a, and are unbuffered; that is, there is no
SIBO data direction control imposed on the lines, as is present on the Series 3a external SIBO bus.
e The contacts for pins | and 15 on the socket protrude slightly and make contact before the
remaining pins on the connector.
e The only difference between the Series 3c and the Siena pin-outs is the function of pin 1. Applying
6V to this pin on the Series 3c will have no detrimental effect. The 5V output on the Series 3c is
the normal VCC5 output provided on the SIBO expansion port of an Series 3a, less one Schottky
diode drop. The VCCEXT output on Series 3c gets turned on two EPOC ticks after EXTSTAT
goes low.
e On the Siena, EXTSTAT directly controls the DNMI line, whilst on the Series 3c, it is polled on
PBO6.
e On the Series 3c, the DSR line performs an external wake-up of the machine through an internal
connection to the EXON line. This does not happen on the Siena.
11-2
File diff suppressed because it is too large Load Diff
+86
View File
@@ -0,0 +1,86 @@
CHAPTER 7
PROGRAMMING IN HWIF
This document is a beta version and may be subject to change.
This chapter describes the changes and additions that have been made to the HWIF library as a result of the
introduction of the Siena and Series 3c machines into the SIBO range.
Grey lines in menus
The introduction of small fonts for dialogs on the Workabout and Siena resulted in a change to the data
structures in the property of the GATE class. This caused an inconsistency in the Hwif library between the
Series 3a and later machines in the way that it stores the positions of grey lines in menus. For reasons of
future consistency, the change has been incorporated in all SIBO machines with ROM version numbers of
Ox356F and above. It is therefore present in Workabout, Siena and Series 3c machines, although Series 3c
dialogs do not need to make use of the small font.
A suitably written Hwif application that makes no use of grey lines in menus will run on any SIBO
machine, regardless of the version of the Hwif library that was used to build it. However, any Hwif
application that uses grey lines in its menus and was built with the version of Hwif supplied with version
2.10 of the SIBO C SDK will not run on Series 3a machines. Such applications that were built with earlier
versions of Hwif will run on the Series 3a, but not on the Workabout, Siena or Series 3c.
All Hwif programs that are linked with the modified Hwif library that is described below can run on the
Series 3, Series 3a, Series 3c, Workabout and Siena - provided, of course, that their displays are tailored to
the various screen sizes and graphics capabilities of these machines.
Hwif library modification
The Building the Hwif library section in the Advanced use of Hwif chapter of the Programming in Hwif
manual explains how to build a customised version of the Hwif library, using the Hwif source files
provided with the SIBO C SDK. Before making the modification that is described in this section, you
should verify that you can build the existing Hwif library.
The required modification is to the hMenuRun function, which can be found in the hhwif-c source file. The
published source for this function is:
GLDEF_C INT hMenuRun ()
/*
Display and use the menu bar
*/
{
if (_GreyLines)
p_bcpy (&DatGate->gate.g.ulines[0], GreyLines,16*sizeof (UWORD) ) ;
return (p_send3 (DatGate,O GT MENU RUN, MenuPositions) );
}
This needs to be modified as shown below, to take into account the changed data structure that was
introduced with ROM version 3.56F:
SIENA/SERIES 3C UPGRADE
GLDEF_C INT hMenuRun ()
/*
Display and use the menu bar
af
{
if (_GreyLines)
{
p_bcpy( (BYTE *) &DatGate->gate.g.ulines [0]
-((p_version()>0x355f) ? 0 : sizeof (DLG _X CONSTANTS) ),
_GreyLines,16*sizeof (UWORD) );
}
return (p_send3(DatGate,O GT MENU RUN, MenuPositions) );
}
Once the source file has been modified in this way, you should rebuild the Hwif library and use the rebuilt
version when developing Hwif applications for any target SIBO machine.
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+17132
View File
File diff suppressed because it is too large Load Diff
+14412
View File
File diff suppressed because it is too large Load Diff
+215
View File
@@ -0,0 +1,215 @@
CHAPTER 5
HWIM REFERENCE
This document is a beta version and may be subject to change.
This manual describes the changes and additions that have been made to the HWIM library as a result of
the introduction of the Siena and Series 3c machines into the SIBO range.
Siena and Series 3c
The FILELIST class
Very long pathnames are now displayed on the file selector with a leading ellipsis followed by the trailing
characters of the pathname.
The HELPLIST class
HELPLIST now folds case when sorting help list entries. This is important if you are writing Help screens
and lists for foreign language variants of your software.
The DLGBOX class
All dialog items now have the pR_wIN_IS_DLCTRL flag set. The hSetLandlordFlags () method does nothing
if PR_WIN_IS_DLCTR1L is not set. With the exception of acurst, all lodger window classes which assumed
that they were components of a DLGBox subclass now only make this assumption if the above flag is set.
There is a new DLGBox flag, DLGBOxX_SMALL_FONT, matching the value of DLGBOx_FROM_HWIF, but never set
from HWIF dialogs. (This flag is cleared from non-HWIF dialogs before the dialog is actually run). The
purpose of the flag is to allow the Workabout and Siena small font feature to be set from resource files. The
flag is harmless for Series 3, Series 3a and Series 3c dialogs.
Infrared communications
System resources
A SYS_IR_POWER_LEVEL resource has been added, giving the text “High” and “Low” for Infrared power
levels.
A SYS_PRINTER_IR resource has been added, giving the text “Infrared” as a printer type.
Keypresses
Normally, IR-related keys are captured by the built-in IR data transfer application. If the user disables IR,
by selecting another mode of communication, these keypresses are absorbed by the ws process key
method of any applications instance of wsERv. As a general service to the user, the method also displays an
“Infrared not enabled” information message. See also the descriptions of the changes to the wsERv class for
the Siena and the Series 3c, later in this chapter.
Data transfer and the Link Paste mechanism
The IR data transfer application on the Siena and Series 3c uses the Link Paste mechanism. The data to be
transferred is extracted from the selected region of the active edit window in whatever application last
declared itself to be the Link Paste server.
An exception to this rule occurs when the currently selected data is a filename in any of the System
Screens file lists. In this case the whole of that file is transferred.
SIENA/SERIES 3C UPGRADE
Siena
The Sienas 240x160 screen is half the width of the Series 3a and Series 3c screens. In consequence, great
care has to be taken to ensure that lines of text do not exceed the available width. This restriction
particularly affects the amount of text that can be displayed in the menu bar and in dialog items.
Menu bars and pull-down menus
The menu bar and pull-down menu borders are thinner than those on the Series 3a , being similar to those
used for the Workabout, and the minimum spacing between menu bar items has been reduced. Despite
these changes, a typical Siena menu bar can not contain more than, say, five menu titles plus a diamond
menu, and the text is restricted to around 26 characters in total. Siena applications with many menu options
will, in general, need to make greater use of submenus than equivalent applications running on the Series
3a or Series 3c. However, the Siena screens width is unlikely to restrict individual pull-down menus,
which may contain up to nine items.
Dialogs
Dialogs are displayed in an 11 point font, with thinner borders (DLG_Box d1_init method), as on the
Workabout. Up to eleven lines of text, including the dialog title, can be displayed in a Siena dialog.
Siena dialogs can not display more than three action buttons in an AcLIst control.
Text items in a cHLIST choice list control are automatically truncated if they are too long to be displayed.
System dialogs
The Siena does not support tone dialling. In consequence, the rpraLpuc free-form tone dialling dialog is
disabled, and application software should not attempt to use it. The spranpic dialog has been modified so
that its function is simply to display resolved telephone numbers.
The content of the various Print dialogs has been rearranged.
Help screens
The title displayed does not include a preceding “Help: ”, to compensate for the smaller screen width.
The FILELIST class
An instance of FILELIST no longer displays the time and date for each file. The wn_key method has been
modified so that pressing the space bar shows the time and date for the currently selected file.
The CALWIN class
On the Siena, an instance of cALWIN can only display the data for a single month.
The WSERV class
The ws _process_key method performs the following additional actions:
e if the keypress is that of the decimal separator key in the numeric keypad - with a keycode of
W_KEY CALC DECIMAL, 0x156 - it is converted to the current decimal separator , as determined by a
call to p_getctd
e if the keypress is one of W_KEY_IR_BRING, 0x140 Of W_KEY_IR_SEND, 0x141 (which would normally
be captured by the infrared file/record transfer software) display an information message to the
effect that Infrared is disabled
e if the keypress is W_FUNC_MODIFIER with w_KEY MENU (FN and MENU keys pressed together) the
Status Window in the System Screen is switched on or off, depending on its current state. Note
that CTRL + MENU also toggles the Status Window on the Siena.
Resource files
Several resources have been changed for the Siena to either save screen space or take account of the
different keyboard layout:
e the syS MTYPE PROTECTED resource uses the padlock symbol instead of “protected”
e SYS PREVIEW ACC is changed so that PSION + ? exits print preview (instead of PSION + * as on the
Series 3a and Series 3c)
e the degree symbol has been added to the resource string syS_SPECIAL CHARACTERS
5 HWIM REFERENCE
Series 3c
In general, the programming interface to HWIM (and XADD) classes is identical with that of the Series 3a.
Menus and dialogs
Menu and dialog borders have been restyled, but the basic geometry is unchanged. Dialogs have thinner
borders (DLG_Box dl_init method), There is no difference in the programming interface.
System dialogs
The sETPoRTDLG dialog class offers a selection of Baud rates up to a maximum of 57600, compared with
the maximum of 19200 on the Series 3a.
The wn_key methods of the FNEDIT and FNSELWN classes have been modified so that SHIFT + TAB (instead of
PSION + TAB) displays the current path in an information message (PSION + TAB is now used to instigate IR
file or record transfer).
The dial out code length in the Dial settings dialog (defined in prAL_ENvar, dialdigs.cl) has been increased
to 16 characters.
The WSERV class
The ws process key method performs the following additional action:
e if the keypress is W_KEY_IR_LINK, 0x142 (which would normally be captured by the infrared
file/record transfer software) display an information message to the effect that Infrared is disabled
e the class has been modified to take account of future extension to the resource string
SYS_SPECIAL CHARACTERS.
+37082
View File
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff