Click to See Complete Forum and Search --> : Is Visual C++ the best lang for this?


GateDHD
October 6th, 2004, 03:53 AM
Another "which language..." question. Please excuse me if this post is off topic for this board. Be gentle and point me in the right direction.

I have 20+ years as a programmer but in higher level languages (COBOL, RPG, SQL, etc...). I have a rather unique (for me) task. A local race track has a computerized scoring system. The original manufacturer of the radio transmitters and software is now out of business. I have been able to locate the parts to build the transmitters and receivers, but the software is in bad need of an update. It is DOS based, for goodness sake!

There is a set of radio receivers that receive signals from transmitters mounted on race cars. The signals are converted to "something", then connected through a serial port to a PC. First of all, I need to find out what that "something" is; then the programming language would need to be able to sense/receive those signals, interpret them, write data to files, and display info to the operator. The application is fairly complicated in that it would include qualifying, scoring, race finishes, points, historical data, etc...

Would VC++ be the best language for this task? Maybe with some ASM subroutines/procedures? I have coded some ASM in the past (shudder) and some VBasic. I don't mind learning any language.

Also, any input as to how to determine the "something" signals coming through the serial port from the receivers? There are 36 receivers so there should be 36 distinct signals from the receivers. I don't even know where to begin to determine what type of data or signal the receivers are throwing and how to detect/measure them at the serial port. Could it be different binary codes? or different voltage levels? What type of equipment would I need to determine the data/signal? meter? oscilloscope? Anybody out there ever done anything like this? If you could point me to a web site or documentation or something to help me with this, I think I can lick the rest. This is going to be a very interesting project!!


Thanks in advance for you help.

Andreas Masur
October 6th, 2004, 10:07 AM
[ Moved thread ]

NoHero
October 6th, 2004, 01:19 PM
Have you tried to get the source (or part of the sources) of that DOS thing? This would generally make the entire thing a little bit better. But I think VC++ is best way "easy" and fast.

But for more help you should exactly explain the techique of this to me ...

Regards

Kheun
October 6th, 2004, 10:53 PM
I think you really have to search for the hardware and software design documents. As mentioned by HoHero, with the source code available, it is easier to understand what you have to do with the capture inputs. For example, the type of processing, like correction, filtering, etc. With the hardware documentation, like schematics, datasheet, etc, you should be able to understand how the hardware works so that you can troubleshoot it should anything happened. At the minimum, you should have a multimeter and a digital oscilloscope. You can use multimeter to check for open or short circuit and also if the circuitry is properly biased (i.e. being applied with the correct voltage source). As for digital oscilloscope, you can capture the input as digital pulses. If you to monitors parallel inputs, you may need a logical analyzer.

Hope this helps.

GateDHD
October 6th, 2004, 11:16 PM
Thanks for the input. First, no source code is available. I've tried a couple of decompilers, but not very much useful information. It looks as if the program "waits" on a signal then proceeds.

Also, the manufacturer of the hardware (and software) consisted of two people. The transmitters seem home constructed with just perf board. I'll attach a picture. The receivers seem to be predesigned and built on printed circuit boards. There was no hardware documentation and very little software documentation. I am considering working with a local vocational school and building a complete new system using the existing enclosures (I also have an electronics background, but not in RF).

I suppose I could just start making different measurements (Vol, Freq, etc...) on the serial port and see what happens.

Thanks again for the input. I'll post more info if I get any further.

Kheun
October 6th, 2004, 11:37 PM
Seems like you have to trace the circuitry to work out the schematic. I do hope that it is not multi-layered PCB. :rolleyes:

Assuming that transmitter and receiver are working, then you wouldn't need to know how they work. However, you still need to understand what kind of data is sent to your PC as well as the port it is using. To understand how the existing program work (painful but not impossible), you may have to dissassemble and step through the binaries. But before you did that, please confirm if you have the legal right.

GateDHD
October 28th, 2004, 11:35 PM
Sorry it has been a while since I replied to this (small health problem). I have finally been able to get my hands on all the hardware for this project. I installed a serial port monitor to see what kind of signals come thru the serial port. It seems the program treats the device (with all the receivers) as a modem. It connects with a baud rate, line control, etc.. handshakes and then "asks" for data. The signal seems to be a binary code using the pinouts on the serial port. 10000000 for 1, 01000000 for 2, 11000000 for 3, etc... I am in the process of decompiling the DOS program and getting help with the ASM code. Is it possible to decompile to C or some other higher level language?

I'm goin ahead with the design for the rest of the application (they have decided to go "all the way" check printing, minor accounting, etc...), and will be using VC++. The above issue, though very inportant, will only be a small part of the complete app. I am going to post some questions on some of the hardware boards to maybe try and get more help with the serial port stuff.

Thanks for all the input and I will be monitoring this post and post any new info. If anyone comes up with anything new, all help would be much appreciated.

Kheun
October 29th, 2004, 01:09 AM
I don't think there is anything to can help you decompile the binary into C or other higher level language, except if the code is compiled into bytecode like Java.

micknustiunimik
October 31st, 2004, 08:58 AM
I don't think there is anything to can help you decompile the binary into C or other higher level language, except if the code is compiled into bytecode like Java.
Possible, such reverse engineering tools exist, but IMHO it's a waste of time to find/try/throw them. :D

ovidiucucu
October 31st, 2004, 09:46 AM
Possible, such reverse engineering tools exist, but IMHO it's a waste of time to find/try/throw them. :D
Better said is: catch/try/throw :D :D

TheCPUWizard
October 31st, 2004, 10:29 AM
I would recomend .NET for this project for a number of reasons:

1) UI development is a lot easier (in any .NET language) than in VC6.0

2) Cobol.NET is available which may allow you to write the code quicker and easier without a large learning curve.

Good Luck..

ovidiucucu
October 31st, 2004, 10:57 AM
2) Cobol.NET is available which may allow you to write the code quicker and easier without a large learning curve.
The same you can accomplish by using App(Good)Wizard of VC6.0

TheCPUWizard
October 31st, 2004, 11:05 AM
Regardless of which "wizard" you use, the OP will still need to learn quite a bit about C++ (or whatever language is chosen). Writing all of the internal algorithms and processes in Cobol eliminates this learning curve entirely [and Cobol.NET has some good wizards for setting up the application also].

The real issue is the OP's goals. If this project is to be used to increase knowledge [and commercial marketability of his/her skills] then learning a new language mankes sense (and I would still recommend .NET over Visual xxx 6.0). On the other hand if the goal is to provide a robust solution with the minimum time invested, and the persons skills already include Cobol, then that may indeed be the better choice.

GateDHD
November 1st, 2004, 02:43 AM
I didn't realize there was a COBOL.NET. That’s pretty cool. I do plan on using and learning a .NET lang either VB or VC++ or maybe VC#. I plan on offering other app development on the PC platform. I realize that there might be a healthy learning curve involved, but I think it will be worth it. I'm sure that my first attempt at developing this app will not be the final product. I expect numerous revisions and wholesale rewrites. I do plan on marketing this app (along with the hardware (transmitters, etc..). I have several nibbles already. I forgot to mention that I have also been in the stock car racing business (the race track side) for around 15 years. So I have several contacts that I can use.

Along with the curve of learning the language, I also have a curve of "unlearning" some programming techniques I have learned over the years. I programmed on the IBM AS/400 platform and prior to that on larger IBM mainframes. For example, I am not used to being concerned about memory and program size. Disk space was also not an issue. And if I got stuck, there were several resources available to me. I do have a couple of local VC++ resources that I can draw from. Since I have coded some VB in the past, I might be leaning toward that language. As far as the asm subroutines that might be necessary, I'll tackle that when it's required.

Oh yeah, I tried several decompilers. Many of them do a pretty good job, but the problem is trying to read the asm code. I am looking locally for someone who can help.

Thanks again for the help. I have found a wealth of knowledge on these forums/newsgroups. That knowledge is there because of people like you who take the time to respond to posts and share your knowledge with the rest of us. I am going to be monitoring this forum and maybe I can share some of what little knowledge I have. Thanks again. Tony