I like how you have used the file class. Very object oriented indeed
There is a small bug I'm working to fix. Our code cannot simply copy the example to initialize the memory as this only initializes it for text files A and B, not C-G! This is easy to fix though.
Also, I believe our signs have 32kB of memory? Right now, the example uses a size of 0800 for file size. This represents the static size of the text file in hex. I'd like to dynamically change the size (but I have no idea how to calculate it as I'm sure the mode, color, font etc settings also count in the file size). $0800 = 2048 dec bytes which would give a 32kB screen room for 16 files. Initially, I just picked A-G at random, but it is clear that we can go up to "P," but this maybe overkill.Documentation from the manual:
Clear Memory/Set Memory Configuration — To Clear Memory just use “E$”. To Set Memory Configuration 11 (or multiples thereof)
ASCII characters are used to set a sign’s Memory Configuration table. Memory Configuration is a sign’s internal battery-backed up RAM
directory. A message file cannot be written until a Memory Configuration is written first — unless the file is a Priority TEXT file or the default
TEXT file “A”. Also, whenever a Memory Configuration is written, the previous table is overwritten. Memory Configuration uses the following
format: FTPSIZEQQQQ where:
F = One ASCII character that represents the File Label. For valid File Labels, see “Appendix A: Valid File Labels” on page 50.
T = One ASCII character that represents the file type. Valid file types are:
“A” 41H = TEXT file
“B” 42H = STRING file
“D” 43H = DOTS PICTURE file
P = One ASCII character that presents the keyboard protection status, either
“U” 55H = Unlocked. Means that the file can be accessed via an IR keyboard.
“L” 4CH = Locked. Means that the file can not be accessed via an IR keyboard.
(For a STRING file, “L” must be selected.)
1SIZE = Four ASCII characters that represent the hexadecimal file size in bytes of a TEXT or STRING file. For a DOTS PICTURE
file, the first two bytes = # pixel rows and the last two bytes = the # of pixel columns in the picture.
QQQQ = Four ASCII hexadecimal characters whose format depends on file type used:
• For a TEXT file, the first two characters represent the file’s Start Time and the last two characters represent the Stop Time. For
valid entries, see “Appendix B: Valid Start and Stop times” on page 51.
• For a STRING file, use “0000” as place holders because these four characters have no special meaning
• For a DOTS PICTURE file, this represents the Color Status. Valid entries are “1000” = monochrome, “2000” = 3-color, “4000” =
8-color (The “E8” command is used for RGB signs. See page 26.)