OK, I had to do something to relax.
However, the problem is that making things of wood was out of question as it was too noisy.
So I decided to do something useful with my open source IC tester software project. Yes, C++ and Qt, so relaxing...
First thing, when I was making chip models for tests, I quickly found that after writing pins descriptions in a window it's boring to click through nearly all pins to set Vcc, GND and outputs, maybe NC (they're inputs by default). It looks like this:
First, type, name and number of pins are filled. Then pin names are written and type fields are clicked to get Input, Output, Vcc, GND or NC. This clicking through was tiring.
So I added a few additional settings to store a set of wildcards. There are 4 sets of wildcards available: For Vcc, GND, Output and NC. If pin name matches, its function is automatically set to the specific one.
This way, if pin is named Vcc, it automatically is set to power, GND to ground and if it starts with Q having one or two characters after, it defaults to output.
Finally I decided to add a comment support in test scripts. This was quite hard decision, as original software for Windows 95 allowed to have #-started comments, but passed them the way that they were removed when the script was saved in the editor, so the script made by my program will be stripped by the original software. I decided to add a support for single-line #-comments in two ways (I call it inverted-Matlab
):
- If the comment does not end with ; it is a typical comment in a program, it is visible only in the script editor and works as an ordinary comment. It has no number assigned and is totally invisible during script run.
- If the comment ends with ; this comment is special, it is seen as a test step and is displayed in the log as information during test. This way it is possible to split the large test script to some blocks and inform user that it is there doing something. Or write like "Trying to overflow 16-bit counter by wiggling its clock, get some movie and drink..."
.
The comment support is introduced into GUI and command-line version the same way. Unused number fields in script format are changed accordingly.
Finally made the command-line version fail gracefully and turn the voltage off after the process was aborted by Ctrl-C. The same thing should be done with static memory testing CLI programs.
I decided to implement a possibility to launch user-configurable set of external programs. This instead of integrating S-RAM testing routines into GUI and CLI versions. Now it has its place in settings and has its menu in the main window, it is possible to edit the list and put parameters like port, baudrate and timeout of tester or force tester to be reset after the program ends, but nothing is saved to settings file yet.
A friend who uses my program too asks me about possibility to add signal tracer option as it was in the original. I know that there is, since 2014, a hidden, not wired checkbox called "Update trace" in the main form, but it is just too uncertain to be used as a digital analyzer - in this mode, it just blows all 24 pin states in form of 3 bytes without any breaks, without any possibility to check aren't there any bytes lost and everything goes out of sync. This was acceptable in DOS-based Win95, but not in Linux with cheap USB-RS232 converters.
Well, I will not release it right off the bat. I like to keep the program for a few months in use to check aren't there any significant bugs. Then I'll put the sources. There is certainly something wrong in some cases when the script is made and power pins are changed after script contains the "compare" command which requires to re-add this command, I had this two times per few hundreds of edits, but I just can't reproduce this bug.