In the miniscule time I have off in the evenings (all day writing the catch2 program at the moment), I’ve been working on the mobile software. For the last few weeks this has been concentrating on trying to get an alphanumeric input on a 2.8″ display. With 240×320 screen area to play with and trying to keep the calibration of the touchscreen to zero I basically couldnt do it without resorting to a old style phone keypad as below with multiple functions/key or calibrating the screen.
So why do I need alpha-numeric keypad? One word “IT administrators” (ok thats two) and their bloody passwords “L@gMe1n3!” being a old one I had to type in to one of my WiFi hotspots recently!
Now during its normal operation the terminal will not need to use alphanumeric input, the terminal is a means of simplifying data capture and checking, if you want to write some text go to a touchscreen or PC. Basically the mobile is for error reduction and data capture, we are either scanning the resource, picking it from a list, presenting a simple choice (ON/OFF, YES/NO, COOLING/HEATING..) or using the rfid. The only thing we want to capture via a keypad is numeric like tank dips (in cm) or lab test results done in the winery such as temperature and this is why the previous post on the option of a physical keyboard enclosure was interesting. (I May have found a suitable LCD so watch this space!)
The only time I must have an alphanumeric input is the bloody setup of the system. Once I’ve connected to the server via WiFi I can get all the other things I need from the MySQL server (or “the cloud” as its easier to explain to non-technical people and managers!)
The goal of this project is not to show how much I can fit onto a screen, I’d use an android device if that was the case, it is the complete opposite, its for a practical cheap tool that is incredibly simple NOT complicated.
The above is the current prototype showing its setup screen, on this screen are the only things that require setting up to access the server, the Wifi SSID/Password and the host name of the server running the service. The TCP port is fixed (I’ve chosen 2001) the protocol is TCP so nothing else is required and once I’ve accessed the server I can access/download anything else under full programmer control (we don’t want the user playing with anything they can break!)
Now the SSID would be easy to set, I could just run a scan command on the WiFi module and I could pick it from the list (assuming its not hidden!), the host server can be input with the numeric keypad, but the password would require an alphanumeric keyboard with all the usual special characters which make your IT Manager slaver at the thought of foiling hackers!
No way around it! I recently thought not too, but a simpler solution is always there waiting!
If you look back to the block diagram of the terminal, if we count there are actually 3 methods of input (assuming we have the touchscreen as the first method) the second method is the RFID scanner and the third method is the Barcode scanner and some barcodes such as code39 can be alphanumeric! So there we have it why not encode the SSID/Password/Host Server into a couple of barcodes then every time the IT Manager decides to change the RFID password we just have to print off a piece of paper with these barcodes on it and the operator can even change it themselves! When we are dealing with 20-30 scanners, lost settings and monthy password changes this is also a real time saver.
Of course anyone who’s worked with barcode scanners before know this is how they change their configuration already and have done since the 80’s, so again nothing new under the sun!
(..oh Hum!) Shame about the wasted time though.
[Edit] Yes, a QR barcode could fit the whole setup string and more, however the scan engines I am currently working with are 1D not 2D. My wife suggested this would actually be a great way to get her smart phone to connect to the horrible WiFi hotspots currently out there, but as far as I’m aware it hasnt been done yet (Google, Apple hint hint!)