Python , Graphical Boolean Logic Builder
The need of this project is to build a set of applications using PYTHON to deliver a Boolean Design systems . The initial offer is not the end product but one that has been designed to find the right programmer , as this will be a large ongoing application . In essence you will be building a small PYTHON powered PLC "programmable logic controller" it required 3 steps
a) Graphical Design page , b) build links between components c) Graphical Testing of the Logic c) generate a native python run time module
For your reference on what Boolean logic is , here is the best example I have found - if you do not understand Boolean now , do not try and lean it as you need to thoroughly understand Boolean logic , graphical python programming and multitasking of multiple python applications to proceed. This link is for reference only.
[url removed, login to view]
Part 1 , Boolean Design Page - Select Icon "DESIGN"
Build a Boolean graphical page designer, that is a drag and drop Boolean logic element design page. Here across the top of the page the following basic set of symbols will be displayed AND, NAND, OR, NOR, XOR, INVERTER, and with each, the correct symbol will be displayed so that it can be dragged and dropped on the page.
As you drag the symbol on to the screen an icon will appear and it will ask you to "add an input" or "next"or "cancel" you can add as many inputs as you like.
for this application the names will be INPUT 1 thought to INPUT 100 or FLAG 1 through to FLAG 100 from in large drop down box
After you have added some inputs you then select "next" , it will then ask you to name an output . For the output it will be FLAG 1 to FLAG 100 or OUTPUT 1 to OUTPUT 100 in a drop down box .. If you select cancel it about the process
Adding a 3 input AND gate
If you added three inputs , this will then appear as a "3 input, one output - AND gate" that is totally movable around the design page .
There will be no limit to how many items you can fit on the screen , and as you add more inputs the gates you draw just get bigger ( longer vertically )
For this demonstration , set the font at 10 point Ariel and page size to 1024 x 768 max .. this will then dictate the physical sizes of the objects you design.
Part 2 , Boolean Link up -- select icon "BUILT BOOLEAN LINKS"
This is two parts ,
a) If you have already named an output as an input , or an input as an output , you will show a line diagram linking the two, all lines must be either vertical or horizontal, with no diaganonal lines allowed .
b) You can also add extra links by actually linking "inputs" and "outputs" of any of the gates your self , with a the "MAKE LINK" icon. Here you high light the start, and then highlight the end of a link or a line , and a new line will appear as above a) In this case a NODE ( joining of two labels ) can exist and have the same value.. E.G. FLAG 4 may also be the same physical point as Output 3 as you have selected them to be joined
NOTE - At any time you may rename an input or output and the corresponding links must automatically adjust
NOTE - You may also remove a link , that you have added in 2b) ..
NOTE - You must also build a page print for this part
Part 3 Test Stage - select icon "ACTIVE TEST"
This program will animate the Boolean logic for you to test. For every input if connected to a gate , you may move the curser of the any input to any gate and set it to a HIGH or LOW state so that it will remember after you select it. The program will then animate ( automatically ) show the results. If an output is HIGH the the line attached to the output will be RED if low it will be BLACK .
NOTE You must also build a page print ( in color ) for this
Part 4 Compile - Select icon "COMPILE"
This part is probably the simplest for any experienced Python programmer , it is the building a python script to emulate the design page in native PYTHON that can be called and and run as an executable PYTHON application .. However to prove this works , you must build a demo graphical application that list the Inputs , flags and outputs that allows you to set the inputs and flags and view the outputs on the screen .. This is a real time application A very simple application that shows only the inputs and outputs and flags used.
The above has zero commercial application , it is just a test application to help us find the right person for this project and may be issued to more than one person.
Payment will be by Pay Pal or Western Union , and broken into the four steps , upon completion of each step 25% will be paid as each step shows us a bit of the quality of you as a programmer . At any time we are not happy with either the quality or the completion of time taken for each step, we reserve the right to remove the project from you and hand it to another appliancant .
Documentation , must be both in your code and explain your code where possible . Therefore your knowledge of written English is imperative .
The chosen programmer will receive significant piece meal work over the next 12 to 24 months , as we
a) Improve the look and feel and operations of the program
b) add almost unlimited Boolean elements, timers, flip flops, counters , etc
Plus unique elements , such as
and other items unique to our company .
Note - I have purposely not included all the details needed , as I am seeking a self starter who can understand and ask questions , If you have an electrical / electronic background then this will most likely suit you.