Home | Contact | Search

Robert E. Weatherford’s Résumé

Robert's Project History

AComm.Dll

1995, 1997 — Automatic Data Processing, Inc.

Introduction

When ADP began creating their AutoPay product suite to replace the Payroll, they needed a communications module to perform the communications tasks over the modem to their mainframes. They brought me in to design and implement a 16-bit Windows DLL and test application to fit this need.

Architecture

After our initial meeting, we decided on the following design:

  • C (not C++) DLL interface
  • No UI in the DLL -- all communication with the user would be via the calling application and the DLL interface
  • One set of functions to perform Datapool Offload file transfer services (based on ZMODEM protocol)
  • One set of functions to perform Check-Mate with the ADP mainframe (IBM 3101 terminal)
  • Modem communications using standard AT commands and a user-definable initialization string with auto-detect

Development

A state machine was written to control the modem, using generic AT commands. At this time, Windows 3.1 didn't recognize modems at the OS level, and TAPI hadn't been born yet.

A terminal emulation class was developed to interact with Check-Mate as if we were an IBM 3101 terminal (which is how Check-Mate was originally used). I had to reverse-engineer the screen formats, and develop a sort of scripting capability to programmatically control the terminal session.

Armed with the source code for PC Payroll's modified ZMODEM code, I ported it to use our communication class methods.

The DLL and test application were developed according to ADP's CSS coding standards, using Microsoft Visual C++, and totaled over 25,000 lines of code.

Technologies

  • C++ and MFC were the language and library used -- statically linked
  • SQL was used in creating the "IO Classes" to communicate with the database. The product supported multiple database engines
  • An AT Command Set state machine was used to control the modem
  • IBM 3101 Terminal Emulation with scripting engine was developed for Check-Mate
  • A ZMODEM derivative was the basis for the Datapool Offload file transfer services

Conclusion

The project contained over 25,000 lines of code. AComm.Dll was later upgraded to WIN32, and a modem auto-detect was added. TAPI support was added in 1997, and was the basis for the ACommServer project in 2000.

 

Copyright © 2002-2011 Robert E. Weatherford, Johns Creek, GA (A suburb North of Atlanta). All Rights Reserved.
Last modified: April 25, 2011.