Engineering and  Communication Systems 
 

Engineering and Communication Systems Programming

- Programming for instrumentation, data acquisition, and charting
- Serial and TCP/IP communication (over many different mechanisms)
- Reliable automated data collection from remote devices
- Monitoring and testing systems to quickly produce robust systems that minimize support issues
- Integration of various analog and digital signals to PC programs
- Motion control systems
- Embedded control systems development (hardware and software)
- Audio & Video capture, playback, and external device control

Primary tools:
Embarcadero (CodeGear, Borland) Delphi and InterBase
Firebird relational database (Windows & Linux)
CopyCat and CopyTiger for database replication

FreePascal and Lazarus (using Synapse) for embedded Linux
TurboPower Async Professional

Other tools we use
New! Various development options

Available at reasonable rates for contract or part-time employment via telecommute with occasional on-site. Small projects and maintenance projects are welcomed.

Please see the AsyncPro page for Async Professional support and files. Sample source code is also available on that page, and a lot more source code is available on the Control Pascal page.

Return to home page for Breneman Labs



Experience

I've been using Borland's Turbo Pascal since 1985, and Delphi since it was released in 1995. My coding is clean, and very close to the Borland standard due to my 32 years of Pascal experience. I am very familiar with low-level details of Object Pascal and component development. I am very experienced with Windows software and systems, and also have experience with Linux. I enjoy working hands-on with equipment, especially testing and troubleshooting, so my projects are extremely reliable.



Recent Projects

Instrumentation, Data Acquisition, and Charting
For the past 17 years I have mainly worked on engineering projects which involve critical monitoring systems for avionics navigation systems, civil engineering projects, tornado warning sirens, and process control. Further details are available upon request.

Free Pascal programming of WinCE device (Motorola Symbol MC1000 barcode scanner) using fpGUI, SQLite, and SymScan.  Here is a page that has the basics.

'C' programming of Freescale HCS08 microcontroller using ProcessorExpert plugin for CodeWarrior. ProcessorExpert is an IDE (written in Delphi or C++Builder) for rapid component-oriented embedded application development using properties, methods and events.

Creation of several pages with Delphi information:
    Cleaning up the Delphi uses statements
    Delphi EXE depends on design-time and compile-time environment
    Detecting an Internet Connection

Instructor for 5 day Delphi training course at GenoTechs in Phoenix.

Delphi User Group Presentation
Mar. 13, 2002 Columbus, Ohio
Oct. 11, 2000 Phoenix
Oct. 16, 2000 Tucson
Oct. 25, 2000 Dallas
Detecting an Internet Connection has some research information.

TCP/IP Multi-threaded Communication Engine
Developed a 16-bit Delphi-1 program that acts as a TCP/IP server and uses the Campbell Scientific 16-bit Csi16Com.DLL to communicate with Campbell Scientific dataloggers. Also developed a TCP/IP multi-threaded client communication engine that is used in 32-bit Delphi programs. Using this engine a 32-bit Delphi program can use the 16-bit DLL to interface to Campbell Scientific dataloggers, even when the 16-bit DLL is on a remote PC (if that PC can be accessed via TCP/IP). This communication engine has been used successfully in several programs since the 4th quarter of 1999.

Internet UDP and TCP/IP Messaging Components and Applications
Created Delphi components to interface directly to the Winsock API for fast UDP messaging. Also created message-oriented TCP/IP components. These UDP and TCP/IP components are used throughout a point-of-sale system that enables a cellular phone sales agent to use a standard Internet dialup account to verify credit status and to submit phone activation requests. I did most of the system design for this system and also created a firewall for the system using Linux. As part of this system I also implemented a program that obtains credit information from a major credit bureau using TCP/IP and a frame-relay connection.

System Design and Programming of World-wide Data Collection System
Made creative suggestions on the architecture of a system that collects data from 60 airports world-wide for a major airline company. My suggestions helped them to install a system which provided much more flexibility and ease of maintenance of the 60 remote systems compared to their initial design, but with no added cost. Implemented the host program that does the data collection per a user-defined schedule.

Pipeline Inspection System and Sonar Head Communication Programs
Built program to communicate with remote pipeline inspection device. Reads various parameters (as rapidly as the device allows) and sends them to a video overlay unit for display in real-time. For this small project we got the communication working in ten hours and added many program improvements in the next ten hours. If you are having difficulty getting your AsyncPro program working please contact us. We welcome small projects like this. This client came back with another small project to develop a program to communicate with a sonar head. We did that project in just 10 hours also.

Host Program Called by About 100,000 Leased Copying Machines
Assisted in getting this program finished and installed. It is used in multiple locations and receives calls from leased copying machines.

Remote Control of Third-party Program
Script-based AsyncPro program on one PC is used to communicate with another AsyncPro program on a second PC. The script can send keystrokes into the another PC to control a third-party program, and also collect data and status information from that PC.

Multi-threaded Communication Unit for a Web Transaction ISAPI DLL
Created a communication unit that is used in an ISAPI web server DLL. This multi-threaded unit queues multiple simultaneous transaction requests through a limited number of serial ports that are connected to legacy mainframe systems. The unit also has the ability to use TCP/IP sockets for communication, and has been used in a number of projects.

AsyncPro Test System
Developed a test system that can run on three or four networked PCs. Two slave test PCs (which can be booted into various operating systems) can be interconnected with serial ports, fax modems, and telephone line simulators. A master PC controls the two slave PCs and also has the ability to control the AC power to the slave PCs, modems, and line simulators. The test control program can run on any networked PC, and communicates with the master PC. The test system uses three levels of scripts for flexible automated sequencing of tests and the gathering of test results. The system is designed to run multiple test programs in multiple operating systems so a large amount of testing can be performed unattended.

Video Tape Recorder (Vtr) Automation Program
This program controls multiple video tape recorders.  A Vtr component was created using Object Pascal.

Shop Floor Data Collection Application
This program interfaces a ComputerWise TNET data collection system to InterBase via AsyncPro. The original DOS program was written in Clipper. I also wrote a small program that simulates the shop floor equipment. I have also helped with the conversion of the main job tracking system from Clipper to Delphi.

Host Application to Support Remote Membership Card "Swipe" Devices
This program interfaces multiple (8-16 or more) modems to InterBase. The program handles remote membership card devices, with the devices calling in and also being polled monthly for usage data. Some techniques I've used in this program are: 1) ancestor forms, and 2) creating arrays of components at run-time (to support any number of modems). I used an ancestor form for the program, so I could build two programs (the actual host program and also a client simulator) based on the same form. This made it easy to test the custom communications protocol.

Porting Turbo Pascal (DOS) communication programs to Delphi (Windows)
Between 1994 and 1996 I worked part-time for a large pharmaceutical wholesaler on a complex Turbo Pascal order-entry system. Towards the end of that time I converted the serial communication programs from the DOS version of AsyncPro over to Delphi-1. I later updated these Delphi-1 programs to Delphi-3 and made a lot of other improvements. There are separate programs for reading handheld bar-code scan units (Telxons) into a PC, and also uploading orders via modem to their host system. Both programs are also combined into a single DLL, for which I wrote another test program.

References available. Please contact me (Paul Breneman) to discuss your project.



Past Projects

Major projects before 1996 are here: Past Projects
Some magazine articles about some of these projects are here: Articles

Here are some notes on source code control techniques I have used to efficiently support PDP-ll and Turbo Pascal programs.


Return to home page for Breneman Labs
Show this image for email address

BRENEMAN LABS
Customer support is our top priority!
Contact information on home page
email: see the image to the left