PropViewer - Propeller Serial Terminal Version 2.2
Praxis
Posts: 333
PropViewer is Serial Terminal for the Propeller Chip with a state of the art GDI+ rendered GUI.
PropViewer has two modes of operation:
1. PST (Parallax Serial Terminal) Emulation i.e. whenever the terminal window loses focus
the serial port is disconnected to allow the propeller to be programmed.
2. Remote Control mode where the PropViewer is controlled by Proploader (V1.04 and above)
PropLoader commands the PropViewer program via a UDP connection
2. Normal Terminal mode where PropViewer is just any regular terminal.
PropLoader is a command line programmer for the Propeller Chip that can be used standalone
or in combination with PropViewer.
NOTES:
For Non Windows users a Binary of PropViewer is included as a separate zip file.
The Zip contains both programs. Both Programs require the DotNet Framework Version 2
www.praxis.com.my
Post Edited (Praxis) : 9/19/2008 7:26:28 PM GMT
PropViewer has two modes of operation:
1. PST (Parallax Serial Terminal) Emulation i.e. whenever the terminal window loses focus
the serial port is disconnected to allow the propeller to be programmed.
2. Remote Control mode where the PropViewer is controlled by Proploader (V1.04 and above)
PropLoader commands the PropViewer program via a UDP connection
2. Normal Terminal mode where PropViewer is just any regular terminal.
[b]Version 2.2 Features[/b] 1. Operating modes as described above. 2. Propeller Loader, The RAM or EEPROM can be program within PropViewer. 3. Propeller Reset button. 4. Data display modes: Normal, Normal plus ASCII control chars and HEX. 5. Local Echo button echos sent data to the main terminal screen formatted as per displays modes above. 6. Clear Screen button. and ASCII "NULL" clear screen option. 7. Function Buttons allows defining 12 buttons for preset data sending. 8. Function buttons can be edited, saved, loaded and defined as a default set on program start. 9. Function Button labels can be defined. 10. Function Buttons are on a collapsable panel to allow hiding resizing of the buttons. 11. Function Buttons are also mapped to keyboard function keys 1 to 12. 12. Mouse over a function button displays a "Tool Tip" with the button send data. 13. Clicking on a saved function button file will launch PropViewer with that button file. 14. Repeat data function, set by a time interval in the setup the last sent data can be repeatedly sent. 15. Data Logs can be generated for all data transactions each with date/time stamped file name. 16. Data Log files can be viewed on the main terminal window. 17. A Raw text file can be sent to the serial port with on screen report of file name and bytes sent. 18. Manual Text sending with either send with enter key or PST style operation. 18. Global CR and LF appending to all sent data strings. 20. Word wrapping for terminal screen. 21. Received, sent and status data is displayed in different color. 22. Control Key plus + or - changes the terminal screen font size. 23. All settings and options are save for use in later sessions. 24. Settings for serial communications parameters. 25. Windows installer.
PropLoader is a command line programmer for the Propeller Chip that can be used standalone
or in combination with PropViewer.
NOTES:
For Non Windows users a Binary of PropViewer is included as a separate zip file.
The Zip contains both programs. Both Programs require the DotNet Framework Version 2
www.praxis.com.my
Post Edited (Praxis) : 9/19/2008 7:26:28 PM GMT
Comments
Seems like if you just integrate the PropLoader function and Propellent access (to create a spin binary from a given source) into your PropTerminal, things can be greatly simplified without any security questions or special requirements. This way one can have a "solution" project that might also make a future spin debugger easier to add and control.
The intent to allow PropLoader take temporary control of the serial-port is a good idea although it brings up some security concerns .... The windows firewall has some ability to isolate transactions to a subnet, but that is "complicated" I guess.
I've gotten quite used to the idea of window.deactive events turning off the comm port ... having "remote program" control or an expanded IDE would of course be more convenient.
I get the error in the box below ... I'm using Windows XP and Live OneCare if that means anything. When I first saw "remote control" I thought about the side thread discussion we had about remote machine client-server downloads ....
Thanks for allowing PropLoader to use position independent file arguments. I first tried to download a file with the ".bin" extention, but that didn't work (file not found) so I changed the extention to ".binary" and that worked fine.
BTW: Nice looking "skin" or window dressing on your application .... Are you using C# ? Can you provide a link or pointer that describes how to do that? Thanks.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
--Steve
Post Edited (jazzed) : 9/12/2008 3:27:18 PM GMT
I'm actually got an IDE as a work in progress that allows defining the external compiler/loader
etc that also has the terminal built in finding the time to complete it is another matter
Most firewalls (XP included) and virus programs that have worm protection allow
exceptions for programs, so instead of unblocking the port just allow exceptions for PropTerminal & PropLoader.
I actually found that quite annoying
with PST so hence the motivation to write the PropTerminal.
I suggested the CasPol.exe for those users who do not run XP or Vista as a possible fix for for the
reported problems. The error message that you got is because the CasPol.exe you executed is for the Framework
Version v1.1.4322 not version 2 (refer included picture).
For the client/server downloads I am writing the programs at this time and will be able to post them later for you
to have a play.
De Nada.
Yes I am using C# but the "skin" is actually from a
set of custom controls that I wrote some time back.
David
Post Edited (Praxis) : 9/12/2008 3:55:44 PM GMT
I've enabled port 8080 in my firewall for local network (tried both Windows Firewall and OneCare Firewall), but I get an exception running PropLoader with TERM=TRUE. I'm using the lasted .net that was installed with Visual Express 2008 applications.
On the client/server application ... I'm no longer working in the situation I've previously described so my resources and requirements are not identical to that.
That being said, I still have this need though since I have a messy/noisy machine in the garage that I would like attach to an old windows xp machine for this purpose. Having virtual comm-port(s) using your transport layer would be nice so I can run the control application from my office. Virtual comm-ports would allow me to have more than one machine running at a time.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
--Steve
my Kaspersky virusscanner says new Threat Type Win32
found new Threat Type_Win32 (Modifikation) File: C:\....Propeller\PropLoaderTerminal_1.zip/PropLoader.exe//PE_Patch
So what's wrong with your file ?
Did somebody hide malicious code in your setupfile ?
I will wait until Kaspersky sends me an answer
best regards
Stefan
I have uploaded a new proploader that has a debug dump, just add DEBUG=TRUE to the command line line and let me know the results.
@StefanL38: I think you are getting a false positive but check with Kaspersky anyway.
FYI I scaned the new zip I just posted with Norton Antivirus and the results are:
Cheers
Having trouble configuring firewall now. Time to reboot.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
--Steve
looks like something is blocking the port could be firewall etc.
In the previous version I did not have an error trap for socket errors so it would crash the program, I added the error trap so the program won't crash.
David
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
--Steve
Glad to hear its working OK.
Cheers
David
Wife says: "I put the plate in front of you, but I didn't force you to eat!"
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
--Steve
If you name it PropTerminal this will produce a lot of misconceptions in future threads.
"My" PropTerminal is used by many Propeller users, and intergrates also a Terminal and a Loader (together with many other functions).
You can find it here:http://forums.parallax.com/showthread.php?p=649540
or on my website: www.insonix.ch/propeller/prop_term.html
But certainly I don't own the TradeMark for this name, so you can name it like you want
Andy
Seems like all the pieces are coming together, what with Compilers (spin, forth, c), PASM and Spin debuggers, Terminal Program and possibly an IDE the future looks very rosy indeed
FYI so you know what features I use:·I use PropTool and PST. I have no issues·with the mechanism PST uses to close the com port - in fact I like it·· Actually, I would like PST to have an option to automatically open the com port when it gets the focus again. It woud be nice to be more like Hyperterminal which shows the keyboard input·characters in situ. The other feature I would like is a capture, so that debugging output can be captured. I copy the PST window and paste to notepad. However, PST gets corrupted after a number of characters (few k I think), so this does not work for large outputs. I use PropTool's editor - so if you use the PropLoader, what/how do you edit the source?
It would be great to integrate the debugger. It·would be nice to read the source file (or list file generated by PropList or Homespun) to marry up the source to the debug output. I can provide much of this info if you like. I haven't decoded the bytecodes like I did with the PASM but have the info in a table which you could use bits from.
I am now debugging my Interpreter and comparing outputs and timing. I can see where the timing is being spent and where to concentrate to speed up further. PM me if you would like an advanced copy of the working debugger with spin, including the new interpreter. (I will not be home till tomorrown night). See Spin Interpreter - Faster ?? for sample spin debug output.
take a look at
http://forums.parallax.com/showthread.php?p=629665
this is full featured terminalsoftware with
- auto connect/disconnect
- script language for advanced debugging on serial data transmission issues
- traffic graph
- macros for sending predefined strings
- log to file function
best regards
Stefan
@Cluso99: I have screen capture to clipboard but it is not fully debugged and will update the zip when it is.
Yes tying input into the same window does have some merit, I will have a think about that.
One Thing that is a work in progress is function keys that have predefined strings to send, this is something that the old terminal program from Win3.1 had and I used a lot.
I use a third party IDE for code editing and PM me with the debugger details.
Cheers
Right Click in the terminal window will capture the content to the ClipBoard.
Here are some nice to have feature requests if you have any time to implement them:
* I would be much more prone to use your solution if the propellent (or other compiler like ICC or otherwise) and loader were controlable via a "build" and "build -> load" mechanisim especially if it was tied to a tool-bar button and the tool path/executables were configurable in setup.
* I too like the input/output in the same TextBox, but that is less important to me than having fully functional and convenient terminal features.
* Copy/paste to and from host is very important. PST is a nice terminal emulation program, but it can't do copy/paste at all ... Jeff was having a bad day I guess [noparse]:)[/noparse] .... Hyperterm can do copy/paste, but you have to right click blah.
* Being able to repeat a command from a ComboBox (given a separate input as you have) is nice but not necessary to me at least. I would appreciate a "repeat last command" button more than the ComboBox though.
* Some kind of a scripting machine would be very useful ... essentially the scriptor would send commands one line at a time and expect a prompt after each command sent. It could have definition for the prompt to expect after a command is done. Being able to run all steps, reset, stop,·continue, and step·would all be useful in a scriptor. Some #include capacity would also be helpful.· This is all pretty easy to write for C# once all the menu commands and buttons are defined. I've done it before except for the #include ... snapshot of this is attached.
* User macro definitions would be nice including the ability to assign "scriptlets" to buttons or function keys.
* We've already discussed virtual com-ports [noparse]:)[/noparse]
* Having your terminal reconnect "immediately" after download is very useful.
Much of this would require a "solution manager" for loading, saving, etc... for different working environments.
@Andy: I like your PropTerminal idea of mapping Keyboard/Mouse/TV/VGA input/output to a PC, but not being able to resize the screen is a BIG killer to me ... that's the main reason I don't use that product. I mostly enjoyed using your PASD debugger except for lack of buttons and the always on top windows. I think what should be taken from this little rant is that "user configurability is important" [noparse]:)[/noparse]
@Stephan: Bray's terminal encapsulates some good ideas, but I find it too "visually complex" to use regularly. It like PropTerminal's little screen makes my eyes hurt. I don't use things that give me a headache. There are many more useful and user friendly alternatives.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
--Steve
You can resize PropTerminal, but not with the GUI. Just write the Settings (produces 'PropTerminal.ini') and edit the Rows and Cols parameter to the value which you want. You can have many .INI files for different applications, and switch between theme with the 'Load Settings' Menu Item. So you can fast change the Window size, the COM port, the Terminal mode, the baudrate ....
In the next version (0.5) you can also scale the Window by a factor,like 1.5, 2.0, 0.5 or whatever you want, to make the font bigger.
The little Window of the default settings is choosen to be TV_Text compatibel (40 x 13 characters), because this was the main application of PropTerminal at the begin.
@praxis
Thank you for renaming your Propeller Terminal.
My one proposo.
In Butons setup maybe You have one more option to SET (F1-12) else any other KEY for rapid Commands.
Ps. Maybe one more Meny command ( Call Loader ) to have all in one funktions.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Nothing is impossible, there are only different degrees of difficulty.
For every stuipid question there is atleast one inteligent awnser
If you dont ask you wont know
Sapieha
David
Memores Acti Prudentes Futuri
Cheers
know. As end-users we largely get what we pay for. If there's enough incentive I'm sure that
most programmers would code in languages others prefer and write for operating systems and
frameworks others may use. Without the incentives we're all stuck with whatever is generously
given.
There's nothing to stop anyone developing the same applications for other platforms and frame-
works. At least .Net programs usually run on anything from Windows 95 through Vista so that's
the largest market and audience catered for.
Nice buttons and definition dialog window ... being able to minimize the buttons helps get rid of window clutter. The Ok button is missing in dialog, but I can live with that. I'm quite annoyed that I can't resize your main application window, but I am otherwise happy with your familiar and intuitive user design. Having to read a friggin' novel or otherwise dig beyond the mainstream paradigm to make common things work is just sillly to me [noparse]:)[/noparse] BTW: I found in my on applications that being connected is not a requirement for toggling DTR to do reset.
On .net .... Hippy is on target as usual. Also ....
Response to my poll about using Java was not very encouraging besides the "gee you should ask the question I want to answer" factor [noparse]:)[/noparse] Thing is, the amount of effort required and "return on effort" has to be over a certain mark otherwise it's just silly to do. Most people can use C# and .net one way or another, and for those who can't or don't, C# is easily ported to Java if that is an important enough market to serve or as a checklist item.
Addressing the biggest market first is important; however, with new markets, providing solutions in niche can build important loyalty with key advocates. Of course Mac OS has enough momentum these days to make that worth a another look but I really don't have time for that. If you want to run programs from some other linux development environment, then you probably have the skills to write that yourself anyway or build applications for others in that market.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
--Steve
Edit: Question about Deactivate removed ...
Thanks for your efforts so far ... those buttons have me hooked ... wish there was more [noparse]:)[/noparse]·Could you add the button definition to its tool tip text? That would be very helpful.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
--Steve
Post Edited (jazzed) : 9/14/2008 8:30:53 PM GMT
I have added resizing to the main form, the custom control that provides the form visual appearance was not
written to have resizing I have however hacked it, must clean it up when time allows.
I have uploaded Version 1.5 with some features based upon your feedback.
Cheers
David
My question
On sendings Butons. Is it posible tu have send whole File?
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Nothing is impossible, there are only different degrees of difficulty.
For every stuipid question there is atleast one inteligent answer
If you dont ask you wont know
Sapieha
Yes that is possible but we would have to agree on a transport protocol such as Xmodem or Zmodem etc.
Regards
David
Not protocol.
Only raw TXT file with ..
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Nothing is impossible, there are only different degrees of difficulty.
For every stuipid question there is atleast one inteligent answer
If you dont ask you wont know
Sapieha
1. The program needs to send each character as it is typed (as in PST and Hyperterminal).
2. Probably the easiest way to display the characters typed on the screen is to provide an echo option. When a character is typed, it is sent out. If echo is on, it is also placed into the receive buffer and is therefor displayed in the screen as well.
3. Need and option to set the clear screen character (PST uses $00 and I think $16).
4. The character set needs to be monospaced.
Good job.
One minor bug though: I can't re-size the window from the bottom-right corner, but I _can_ from the top-right corner! (I can live with that though!)
Well done.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Cheers,
Simon
www.norfolkhelicopterclub.com
You'll always have as many take-offs as landings, the trick is to be sure you can take-off again
BTW: I type as I'm thinking, so please don't take any offence at my writing style