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:
CodeGear (Borland) Delphi
and InterBase
Firebird relational
database
CopyCat and CopyTiger
for database replication
FreePascal and Lazarus (using
Synapse) for embedded
Linux
TurboPower
Async Professional
Other tools we use
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.
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 22 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
'C' programming of Freescale
HCS08 microcontroller using ProcessorExpert
plugin for CodeWarrior.
ProcessorExpert is an IDE (written in Delphi) for rapid component-oriented
embedded application development using properties, methods and
events.
Instrumentation, Data Acquisition, and Charting
For the past seven years I have mainly worked on engineering
projects which involve critical monitoring systems for dams,
tunnels, tornado warning sirens, and process control. Further
details are available upon request.
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,
OH
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
Here are some notes on source code control
techniques I have used to efficiently support PDP-ll and
Turbo Pascal programs.
|