Future Pro-Lite Protocol Request
The Pro-Lite sign is a very powerful display mechanism that would be
highly useful to owners of personal computers.
I proposed the following minor additions (which should be backwards
compatable) to the Pro-Lite
protocol to make it useful for developers to perform advanced
and reliable functions.
This is a copy of a request I sent to Pro-Lite. To date, I have heard
virtually no response from them about it.
Developer's Guide to the
Highly Desired,
But Not Coded
PRO-LITE TRU-COLOR II PL-2014R
ROM 7.0 Version 1.03
Designed by Walt Stoneburner
PURPOSE
This guide contains two pieces of information:
1. a re-worked user interface
2. detailed information about an enhanced protocol that I believe
Pro-Lite shuld adopt for their signs to make them accessible
to computer programmers
The protocol is small, simple, and provides the computer user extra
control over the sign than is normally possible with the remote. This
allows a computer to produce dynamic content on the sign.
Whenever possible, the protocol presented here adopts the format of the
5.24Q rom, and extensions from the 6.05 rom. These will be notated in
parenthesis.
Information in this document is provided for the purpose of communicating
developer needs, so that a Pro-Lite sign can expand into multiple markets,
particularly the technical one.
TARGET AUDIENCE
Keep in mind that the remote users don't have to have every detailed
function available. Most likely if they aren't using a computer, they
don't need all the power of the sign to display dynamic messages.
Users that are familiar with a computer are going to be familiar
with more techincal aspects and so the protocol doesn't have to
be human readable, just like the graphic definition isn't.
Let the techno-weenies have control over the sign to write applications
that can make use of the sign's extra features. This in turn generates
an additional market for the sign.
PROGRAMMING WITH THE REMOTE (new)
The majority common features may be accessed by the sign's remote.
Advanced features for prividing dynamic messages are only available
using a computer.
The remote consists of 44 buttons (4 across, 11 down); each button
may perform more than one particular task.
Power Trivia Menu Esc
__ __ __ __
[__] [__] [__] [__]
Color Font Graphic Effect
__ __ __ __
[__] [__] [__] [__]
Shift Num/Sym AltChar Enter
__ __ __ __
[__] [__] [__] [__]
<--- ---> F1/Up F2/Down
__ __ __ __
[__] [__] [__] [__]
A 1 ! B 2 ; C 3 : D $
__ __ __ __
[__] [__] [__] [__]
E 4 ' F 5 ` G 6 " H £
__ __ __ __
[__] [__] [__] [__]
I 7 & J 8 \ K 9 % L ¥
__ __ __ __
[__] [__] [__] [__]
M * ? N 0 [ O # ] P @
__ __ __ __
[__] [__] [__] [__]
Q ~ + R _ - S | / T =
__ __ __ __
[__] [__] [__] [__]
U { ( V } ) W < X >
__ __ __ __
[__] [__] [__] [__]
Y ^ . Z , Space Del
__ __ __ __
[__] [__] [__] [__]
This is not a complicated layout to maintain; you just have a table for
each shift state possible.
BUTTON EXPLAINATIONS
The keypad is divded into two sections: the top controls functions,
the bottom keys are for entering text.
Power This button turns on and off the display, it does not control power
(5.24Q) to the sign. When the display is off, the sign will not respond to
any other buttons on the remote. The sign if left off for five
minutes will go into sleep mode where it conserve power.
Menu This button will bring up a menu for programming the sign. The
(new) first menu presented will be:
Pag Tim Gfx
Pressing Menu again will present the following menu:
Ver Rst Set
Menu will toggle between these two menus, pressing Esc will exit
the menus.
NOTE that despite what menu is being shown, the letters P, T, G,
V, R, and S will always work as short cuts!
P: Edit a page
<-- While editing, this button moves to the left.
Up While editing, this button moves to the start of the message.
--> While editing, this button moves to the right.
Down While editing, this button moves to the end of the message.
Shift Goes into alpha mode, toggling between upper and lower case
(The orange column)
Num/Sym Toggles between numeric and symbols (the white and green columns)
AltChar Cycles letters through their European equivalents (6.05)
Other assorted letters will toggle through symbols (new)
Color Presents Color Options
Font Presents Font Options
Graphic Presents Graphic Options
Effect Presents Effect Options
Trivia Toggle Trivia
COMPUTER PROTOCOL DETAILS
With this simple data structure, it is possible to perform all
the advanced page operations:
Master Sequence Buffer SIZE = 0 .. 32
|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|
1 2 3 4 5 6 7 8 9 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2
^
`-Current Page Index Being Displayed
Effectively, the sign holds a list of 0 to 32 pages that it is sequencing
through. Size 0 = go blank
A run page command is nothing more than a special case of one page in the
sequence.
When a timer becomes active, it simply copies it's seqence into the
master sequence list.
STATUS CODES (6.05)
Each sign has an ID number, from 01 to FF in hex. This allows the computer
to uniquely address 255 indiviual signs.
Anytime a sign is individually address, the sign responds with it's ID
number and a status (for instance, sign 01):
<ID01>S Success
<ID01>E Error (error condition)
<ID01>F Memory Full (error condition)
If signs are addressed with the set-time command or as ID00, the request is
honored by all signs -- however none of them will respond with an
acknowledgement.
If status messages came across in numeric form, they'd be easier to test,
and there would be more expansion room in the future.
<ID01>E01 Protcol Error
<ID01>E02 Memory Full
...
MONITOR (new)
As an extension to the status codes, it is possible to observe when a
message starts to display. This can be used to prevent from overwriting
a message that is currently scrolling on the display.
To turn on monitoring:
<ID01><M+>
Whenever a page starts to display, the sign will echo the page letter
followed by a carriage-return line-feed sequence.
Monitoring stops the moment the sign receives a character from the
computer.
Note: This command would not work for the <ID00> sequence, since you
don't want a bunch of status messages coming from different
signs.
This mechanism can be used to control when a message should be updated
in a sequence by the computer.
DUMP (new)
This is useful for diagnostics and storing the state of the sign.
The following command dumps all the pages and timers in the sign:
<ID01><DMP>
For example, this sequence could return:
<ID01><PA>Good Morning
<ID01><PB>Good Afternoon
<ID01><PX>Mumble Froz
<ID01><TA>*0000AX
<ID01><TD>*1200BX
<ID01>S
What is important is that the sign send you the input that you'd need to
restore the sign's state.
WAKE UP (5.24Q)
A header with no command is treated as a success and is used to wake up
an inactive sign.
<ID01>
The reply will be <ID01>S
SETTING THE CLOCK (5.24Q)
This command sets the clock for all signs on the network:
<TYYMMDDWhhmmss>
TURNING THE SIGN ON OR OFF (new - low priority)
The sign never really turns off. The only way to cut power to the sign
is to unplug it -- note this will lose the current time, and pluging back
in the sign does a soft reset (your pages are not lost).
<ID01><OFF>
Stops the sign from shifting text, and blanks the display.
<ID01><ON>
The display shows the current message, and shifting resumes.
VERSION INFORMATION (new - high priority)
Software developers may want to know exactly which sign is connected
to the system, so they know what codes to send:
<ID01><V>
The sign will respond with:
<ID01>PL-M2014R ROM 5.24Q MEM 32K/14202 COM 9600
The developer can detect that <ID01>P was returned and continue
reading input from the sign until the next end of line.
The information presented is:
<ID01>PL-M2014R:ROM 5.24Q:MEM 32K/14202:COM 9600
^ ^ ^ ^ ^
`---Model | Sign --' | `-- Highest
Number ROM Capacity Bytes Baudrate
Version In Use Allowed
RESETTING THE SIGN (5.24Q)
To delete all pages, clear all timers, and reset all graphics, use:
<ID01><D*>
SETTING A PAGE (5.24Q)
A page may be entered into the sign like so:
<ID01><Px>text content goes here
If no <Px> command is specified, then page A is assumed by default.
NOTE: A page may contain special functions. Please see the end of
this section for details.
If no text is provided, the page remains unchanged.
This IMMEDIATELY updates the page content. If the sign is
currently displaying the page, the new page content will
be shown.
RUNNING A PAGE EXPLICTLY (5.24Q + new)
A page may be explictly run:
<ID01><RPx>
When a page is run, it stops a timer sequence from running, effectively
putting it on hold.
In this case 'x' can a series of 0 to 32 page letters. These immediately
get loaded into the master sequence buffer. (new)
<ID01><RP*> will resume the prior sequence. Only one sequence may be
buffered.
RUN DEFERRED SEQUENCE (new)
A deferred sequence acts just like <RPx>, except that it does not load
the master sequence buffer with the new sequence until the end of the
current page being displayed has finished, thus preventing a message
from getting interrupted in the process of displaying.
<ID01><DSx>
In this case 'x' can a series of 0 to 32 page letters. These immediately
get loaded into the master sequence buffer.
This mechanism can be used for creating smooth transitions between
messages.
TIMERS (5.24Q + new)
The sign can handle up to ten concurrent timers. These are checked once
a minute.
<ID01><Tn>WHHMMppp
W = Weekday 0=Sun, 1=Mon, 6=Sat, *=Everyday, X=Never
HH = Hour 00=midnight, 01=1:AM, 12=noon, 23=11:PM, **=Everyhour
MM = Minute 00-59, **=Everyminute
ppp = a sequence of 0 to 32 pages. (0=show blank screen)
The sign starts at timer A and works its way to timer J. Undefined timers
are ignored.
The first matching timer found starts the sign playing it's sequence.
If no timers are found to match, then the sign's display is not changed.
This means timer ***** will always match, and therefore it should be LAST
in a sequence. (00000 means Sunday at midnight)
An 'X' for the weekday means the timer will never match. This is useful
for storing a sequence to play later.
NOTE: When the first timer is defined, it should NOT copy it's sequence
into the master buffer seequence for immediate display. Only when
the timer triggers should the display start.
Example 1 (Matching timers):
<ID01><TA>*16**A
<ID01><TB>***30B
At thirty minutes past the hour, show page B, except during the hour
of 4:PM when page A should be displayed all the time.
Example 2 (Matching timers):
<ID01><TB>***30A
<ID01><TA>*16**B
At thirty minutes past the hour show page A. Page B will be displayed
from 4:PM-4:29PM.
Example 3 (Holding a sequence):
<ID01><TC>XXXXXCDE
Timer C will never trigger. Ever. However, the user may explictly run
timer C with the run-timer command
TIMER ACTIVE BITS (new - low priority)
Specific timers may be enabled or disabled:
<ID01><Tx-> Disable timer 'x'
<ID01><Tx+> Enable timer 'x', if defined
This allows a bunch of timers to be defined and then controlled after
the fact without reloading.
RUNNING A TIMER (new - high priority)
After timers, or more specifically timer sequences, have been defined,
it is possible to play them despite the fact that it may not be the
right moment to show timer.
<ID01><RTx>
RESUME SEQUENCE (5.24Q)
If <RPx> stops a timer or a sequence, use:
<ID01><RP*>
to resume the sequence.
If no sequence or timer was showing, then <RP*> has no effect and
returns success.
STREAMING TEXT (new)
Sends a continuous stream of text to the sign for immediate display.
<ID01><STM>
The moment this code is accepted (after the cr/lf), the sign will take
ALL input to the RS232 port and display it as it comes in on the
display.
If a character is not available (and say the sign is in SHIFT <- mode),
then the sign stops shifting until the next character arrives.
When the sign's buffer is 80% full, the sign will send a Control-S to
ask the computer to stop sending. When the sign's buffer reaches
20% (and it has blocked the computer with a control-s), it will request
a resuming of transmission with a Control-Q.
To get out of this mode, an ESCAPE (0x1B) character is sent. The sign
is then ready to receive <ID01> commands again.
DELETING A PAGE (5.24Q + new)
To delete a page:
<ID01><DPx>
Note that if you delete a page that is run explictly, then the built in demo
page will display, such as:
<ID01><DPA>
<ID01><RPA>
However, if you delete a page that a timer sequence is showing, then the page
is skipped as if it wasn't part of the series:
<ID01><PA>Page A
<ID01><PB>Page B
<ID01><PC>Page C
<ID01><DPB>
<ID01><TA>*****ABC
This will show page A, skip over page B, and then page C. If no pages exist, the
sign will display blank content. (new)
INTERSPERSED MESSAGES "TRIVIA MODE" (5.24Q)
This will load the sign with text messages to be displayed interspered with the
playing sequence of messages.
<ID01><Q+>
<ID01>line of text
...repeat as many as desired...
<ID01>line of text
<ID01><Q->
Messages may contain functions, colors, alternate characters, etc. just like any
other page.
There do not have to be an even number of lines.
Text presented may use up to half of the sign's 32K.
Having no lines of text is the same as turning Trivia Off and reclaims the unused
portion of the full 32K for programming messages.
GRAPHIC BLOCKS (5.24Q)
There are 26 (A - Z) user alterable graphic blocks available, the basic
format is as follow:
<ID01><Gn>...CCC...cr lf
This is unchanged from the 5.24Q roms.
STREAMING GRAPHICS (new - low priority)
The LEDs may be controled individually and scrolled as well by computer control.
This allows you to create your own fonts and pictures.
Inserting columns on the left:
<ID01><LCL>xxxxxxx
Inserting columns on the right:
<ID01><LCR>xxxxxxx
For column replacement mode entry:
<ID01><LCn>xxxxxxx ...
n = starting column, 0 - 79
xxxxxxx = A group of seven color codes from top to bottom that will go
in column 'n'. Additional groups can be added for each subsequent column.
Inserting a row from the top (pushing down):
<ID01><LRU>xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Inserting a row from the bottom (pushing up):
<ID01><LRD>xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
For row mode entry:
<ID01><LRn>xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ...
n = starting column, 0 - 6
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx =
A group of eighty color codes from left to rightthat will go
in row 'n'. Additional groups can be added for each subsequent row.
A = Dim Red U = Black (unlit)
B = Red X = Don't change
C = Bright Red
D = Orange
E = Bright Orange
F = Light Yellow
G = Yellow
H = Bright Yellow
I = Lime
J = Dim Lime
K = Bright Lime
L = Bright Green
M = Green
N = Dim Green
Scrolling can be done:
<ID01><LUx> Scroll up 'x' lines
<ID01><LDx> Scroll down 'x' lines
<ID01><LLx> Scroll left 'x' columns
<ID01><LRx> Scroll right 'x' columns
PAGE CHAINING CODES
<GA> Immediatly run page A
<GB> Immediatly run page B
<GC> Immediatly run page C
<GD> Immediatly run page D
<GE> Immediatly run page E
<GF> Immediatly run page F
<GG> Immediatly run page G
<GH> Immediatly run page H
<GI> Immediatly run page I
<GJ> Immediatly run page J
<GK> Immediatly run page K
<GL> Immediatly run page L
<GM> Immediatly run page M
<GN> Immediatly run page N
<GO> Immediatly run page O
<GP> Immediatly run page P
<GQ> Immediatly run page Q
<GR> Immediatly run page R
<GS> Immediatly run page S
<GT> Immediatly run page T
<GU> Immediatly run page U
<GV> Immediatly run page V
<GW> Immediatly run page W
<GX> Immediatly run page X
<GY> Immediatly run page Y
<GZ> Immediatly run page Z
This allows a message to be constructed as:
<ID01><PA>Hello<GC>
<ID01><PB>World<GA>
<ID01><PC>There<GB>
<ID01><RPA>
and it will display as "HelloThereWorld" repeatedly.
SPECIAL EFFECTS CODES
<FA> AUTO <Fa> <F0>
<FB> OPEN <Fb> <F1>
<FC> COVER <Fc> <F2>
<FD> APPEAR <Fd> DATE ONLY <F3>
<FE> CYCLING <Fe> DAY <F4>
<FF> CLOSE <-- <Ff> MONTH <F5>
<FG> CLOSE --> <Fg> YEAR <F6>
<FH> CLOSE <Fh> <F7>
<FI> SCROLL UP <Fi> <F8>
<FJ> SCROLL DOWN <Fj> <F9>
<FK> OVERLAP <Fk>
<FL> STACKING <Fl>
<FM> COMIC 1 <Fm>
<FN> COMIC 2 <Fn>
<FO> BEEP <Fo>
<FP> PAUSE <Fp>
<FQ> SLEEP <Fq>
<FR> RANDOM <Fr>
<FS> SHIFT <-- <Fs>
<FT> TIME/DATE <Ft> TIME ONLY
<FU> MAGIC <Fu> HOUR
<FV> THANK YOU <Fv> MINUTE
<FW> WELCOME <Fw> SECOND
<FX> SPEED 1 <Fx> TARGET
<FY> SPEED 2 <Fy> COUNT
<FZ> SPEED 3 <Fz>
CHARACTER FONT SIZE CODE TABLE
Code Bold Italic Flashing
<SA> No No No
<SB> Yes No No
<SC> No Yes No
<SD> Yes Yes No
<SE> No No Yes
<SF> Yes No Yes
<SG> No Yes Yes
<SH> Yes Yes Yes
COLOR TABLE
<CA> Dim Red
<CB> Red
<CC> Bright Red
<CD> Orange
<CE> Bright Orange
<CF> Light Yellow
<CG> Yellow
<CH> Bright Yellow
<CI> Lime
<CJ> Dim Lime
<CK> Bright Lime
<CL> Bright Green
<CM> Green
<CN> Dim Green
<CO> Yellow/Green/Red
<CP> Rainbow (Default)
<CQ> Red/Green 3D
<CR> Red/Yellow 3D
<CS> Green/Red 3D
<CT> Green/Yellow 3D
<CU> Green on Red
<CV> Red on Green
<CW> Orange on Green 3D
<CX> Lime on Red 3D
<CY> Green on Red 3D
<CZ> Red on Green 3D
GRAPHICS
<BA> Telephone
<BB> Glasses
<BC> Tap
<BD> Rocket
<BE> Monster
<BF> Key
<BG> Shirt
<BH> Helicopter
<BI> Car
<BJ> Tank
<BK> House
<BL> Teapot
<BM> Knife & Fork
<BN> Duck
<BO> Motorcycle
<BP> Bicycle
<BQ> Crown
<BR> Sweet Heart
<BS> Arrow Right
<BT> Arrow Left
<BU> Arrow Down-Left
<BV> Arrow Up-Left
<BW> Mug of Beer
<BX> Chair
<BY> High-heeled Shoes
<BZ> Wine Glass
EUROPEAN CHARACTERS
The characters shown page 26 of the 5.24Q manual should be
exactly as shown and all codes shown should work.
|
This page last updated
|
|
|