Home Page Products Main Page Greenleaf Secure Store and Catalog Technical Support Request Download listings There is a lot of reference material online here. All about Greenleaf, privacy, policies, legal corner... We add to the top of this when things of note occur.
View Cart
Greenleaf Software Inc, home of Greenleaf serial communications including protocol analyzers and data compression tools

Greenleaf Comm++ in Depth

Summary

  • Award winning class library for asynchronous communications for Windows, Win32s, Windows NT, DOS, Extended DOS, NASI - with more, More, MORE
  • Greenleaf Comm++™ paves the way to robust object oriented programming of serial communications in applications for a wide range of platforms - you get platform independence. Comm++ includes abstract base and derived classes which perform all of the functions needed for your communications jobs. Comm++ removes the grunt work - so you can do your job easier, faster, even better

Platforms, APIs

  • Pure C++ class library with an arsenal of over 460 public methods in the API gives you the industry’s most extensive shot at both rapid application development and extending or customizing the library for your needs
  • Supports Microsoft Windows 3.1x, NT 4, 9x, Me, XP, Server 2003, Win32s, MS-DOS, NASI for Novell NACS Server, DESQview, Borland PowerPack™, Tenberry DOS/4G™, and Phar Lap TNT™ DOS extenders (Note: All development must be done on Win32 platform; If you target DOS Or Extended DOS, you will need either Borland C++ 5.02 (Not C++Builder!) Or Microsoft Visual C++ 1.52. Contact us If you require either of these compilers because they are Not sold Or supported by either Microsoft or Borland International. We can help.
  • By special request, registered users may obtain a set of libraries and DLLs for Watcom C++ 10.0. We do not include these with the retail product because Watcom C++ Is currently available only from Open Watcom; we cannot support any Open Source compiler; If we Do send you the libraries, it will be on an "as-is" basis. The libraries were compiled With Watcom C++ as it was produced by Watcom. We have numerous satisfied customers using the libraries For Watcom.

USB and Ethernet Connectivity

  • Tested with I/O Networks EdgePort USB hardware using ION comm driver for Windows.
  • NOTE: Does Not interface directly With USB port or with Ethernet pipe.
  • Device and Terminal Server hardware such as Digi PortServer TS or Digi One series allow you to use any Number of serial ports located remotely on a LAN.
  • Do not try to economize by acquiring low-cost, relatively unknown and untested connectivity devices.
  • In general, If you can view the device in Device Manager in Windows' Control Panel, in the "Ports - COM and LPT" section of the tree; If the devices are listed as serial ports that are working normally the odds of Comm++ applications using the ports are good.
  • If you have questions about specific devices or want a recommendation, please Call Greenleaf Sales toll-free at 1-877-218-7347 (US and Canada) Or by email to Sales@GreenleafSoft.com to access our extensive knowledgebase on this intricate topic.

We're the guys who did the grunt work... so you don't need to.

Power and Versatility

Face it: Microsoft APIs only scratch the surface of what a serial port can Do. For over 20 years, Greenleaf CommLib and Comm++ have taken on the tough stuff involved in managing ports, transferring files, And doing terminal emulation. We've a world-class reputation for excellence and now our Greenleaf CommX product adds the ease of ActiveX controls to the product lineup. If you prefer C++, Comm++ has the most features. If you prefer C, take a look at CommLib--it's rock-solid. If you work in VB, consider CommX. Yes, you can use CommLib Or Comm++ in environments other than C/C++, but the documentation For CommX Is slanted heavily towards the Visual Basic / Delphi world.

This class library provides powerful tools for all aspects of asynchronous comm programming for all major PC-based platforms. Combine file transfers with Hayes modem controls, add ANSI, VT100, VT52, or "glass Teletype" terminal emulation, select an appropriate screen driver and a platform driver

You can drive any number of simultaneous ports on standard or intelligent multiport boards!
"any number" means exactly what it says. The real-world number of simultaneously open and busy serial ports is not limited by Comm++. The number of ports you can use depends upon the hardware, total processor loading (including whatever other software is running), and other factors. While there are, For convienence, some port names such as "COM1" -- "COM35," you can use any number you wish in your code.

Select XON/XOFF, RTS/CTS, or DSR/DTR handshaking, along with powerful file transfer protocols!

You can select screen drivers and add onto the base classes yourself to create entirely new communications functionality for your applications! Start with Greenleaf Comm++, end on time, within budget!

Sophisticated
building blocks

Comm++ begins with abstract base classes which could be any kind of serial communications - not necessarily hardware - and builds onto this support for the 16550 series UART, Digi International's standard and intelligent boards, Arnet and Star Gate intelligent multiport hardware, and interfaces with Microsoft Windows

Your application will first create an instance of one of the platform / hardware classes, GFI8250, GFDigiPC, GFComOS2, GFComWin3, GFComWin32, GFSmartDigiBoard, GFSmartArnet, GFSmartStarGate - or the Novell NASI driver, GFNasi

Then you need to create a generic serial port control object of class GFSerial. This combination forms the basis for any kind of program using asynchronous communications

Classes like GFVt100, GFAnsiTerminal, GFTeletype, And GFVt52 are derived from GFSerial, so all you need do to implement an ANSI terminal in the program below is substitute one line of code and add one to define the type of display driver you want to use.

Shown here is a short program that runs under MS-DOS that provides full-duplex 9600 baud communications on COM1. The output Is rather unformatted in the console.

#include <stdio.h>
#include "compplib.hpp"

main( void )
{
int c;
GFI8250 sio( COM1 );
GFSerial cp( &sio );
  for ( ; ; ) {
    if ( gfkbhit() ) {
      c = getkey();
        if ( c == ESC )
          return;
        else {
          cp << c;     // Output keystroke to port.
          cp >> c;     // Get character from port if any
          if ( c != GF_TIMEOUT )
            printf( "%c", c );   // display it somewhere
          else
            return;
        }
    }
  }
}

To switch to an ANSI terminal emulation, do this:

Add:..............GFScreenVid vid;
Change:...........GFSerial cp( &sio)
To:...............GFAnsiTerminal cp( &vid, &sio )

Elegant Yet Programmer-Friendly

  • Extensive error code system plus easily built debug library versions smooth application development
  • Baud rates to 115,200
  • Number of simultaneous ports limited only by hardware
  • Classes designed For extensibility With minimal overhead

Development Platforms

  • Windows 95, 98, 98SE, ME, NT 4 (SP 5+), 2000, XP, Server 2003
  • Visual C++ 5, 6, 7.1, or 8.
  • Borland C++Builder 3,4,5,6 with apropriate (latest) patches and fixes per Borland website
  • Borland C++ 5.02 (Use to target DOS or Extended DOS; see notes above in "Power and Versatility" section above.)
  • Visual C++ 1.52 (Use to target DOS or Extended DOS; see notes above in "Power and Versatility" section above.)

Target Platforms

  • Windows 95, 98, 98SE, ME, NT 4.0, 2000, XP, Server 2003
  • MS-DOS (Use ONLY Microsoft Visual C++ 1.52 or Borland C++ 5.02)
  • 16- and 32-bit Extended DOS (Use ONLY Microsoft Visual C++ 1.52 or Borland C++ 5.02)
  • Windows 3.1x, Windows for Workgroups 3.11 (Unsup) (Use ONLY Microsoft Visual C++ 1.52 or Borland C++ 5.02)
  • Novell NASI (Unsup)

DOS Extender Support

If you target a DOS environment, you know that DOS extenders are a way to gain more useful memory. We support Borland PowerPack and VROOM, 16- and 32-bit Tenberry, and Phar Lap extenders

Communications Hardware

  • COM1..COM4 (ISA / EISA), or COM1..COM8 (MCA systems)
  • Digi DigiCHANNEL™ non-intelligent multiport board support (MS-DOS)
  • Intelligent Digi, Arnet, & Star Gate multiport board support
  • Classes for BIOS and Extended BIOS support (MS-DOS)
  • Comm++ fully supports 8250, 16550, 16650, 16750 and compatible chips. It also supports many brands and models of intelligent and non-intelligent multiport communications hardware
  • Maximum baud rate is hardware dependent; Comm++ itself is capable of speeds up to 921.6 Kbps.

UART FIFO Support

  • Programmatic control of 16550 UART FIFO trigger level (applies to almost all 16x50 UARTs And multiple-UART chips.

Communications Parameters

  • Baud rates to 115,200 using standard 16550 UART; up to 921,600 with 16750 and compatible chips.
  • Odd, Even, No parity, plus Mark (Stick) and Space (Stick) parity
  • 5, 6, 7, or 8 data bits
  • 1, 1 1/2, or 2 stop bits (1.5 stop bits only With 5 data bits)

Flow Control & Handshaking

  • XON/XOFF software flow control
  • RTS/CTS and DSR/DTR hardware handshaking

Helping You Get Up and Running Fast!

  • Comprehensive error code return system, so if something breaks you can easily determine the locus and cause
  • Lots of examples in source code for various platforms
  • Free technical support from Greenleaf Software Inc.

Any number of serial ports in a PC

  • From a software standpoint, the number of ports is virtually unlimited (dependent upon hardware only)
  • Interrupt driven, circular-buffered input and output
  • Practical limit Is hardware driven

Intelligent and non-intelligent board support

  • In Win32, If Windows can see the port, chances are Comm++ can drive it, wherever it may be.
  • Non-intelligent board support available For Select boards:
  • Supports many non-intelligent multi-port boards including DigiBoard, Arnet, Star Gate, Contec, Quatech, Fastcom, AST, BocaBoard, SeaLevel, and Hostess
  • Drives Digi, Arnet, B&B, Contec, And other intelligent multi-port boards. Use EIA-422 Or EIA-485 interface on some boards.

Comprehensive port And File I/O

  • Abstract GFFileIO class for access to file I/O operations & properties
  • Many methods And properties For port parameters And buffer command And status.
  • Use overloaded << and >> stream I/O notation on ports.

Standard file transfer protocols

  • XModem, including CRC and Checksum, 1K and G variants
  • YModem, plus YModem-G, with subdirectory recursion, strip path, and other options
  • ZModem (16- or 32-bit CRC), with crash-recovery, subdirectory recursion, sliding window, and file management options
  • Kermit file transfer protocol with RLE compression, 8-bit prefixing, and subdirectory recursion
  • CompuServe B+ file transfer with checksum, 16- or 32-bit CRC, strip path, and resume download options
  • ASCII file transfer, with subdirectory recursion (send multiple files) and line feed strip options

Terminal Emulations
and Screen Drivers

  • ANSI PC
  • VT100
  • VT52
  • TTY
  • Comprehensive screen driver classes provide maximum flexibility for terminal emulations and your application. TextWindows™ for Windows 3.x MDI and Windows NT,   Windows NT Console, and DOS; Greenleaf DataWindows™, and Symantec-specific class.

Can be Event Driven

  • Windows WM_COMMNOTIFY event notification
  • Win32 Wait for Comm Event capabilities
  • If you REALLY need extensive and versatile events, we suggest you take a look at Greenleaf CommX which provides many events unavailable elsewhere.

Terminal Emulations
and Screen Drivers

  • Hayes compatible modem control Class GFModem With over 30 functions to streamline AT compatible controls and status

Documentation

  • Windows Help system - includes all classes, functions, And examples.
  • Many compilable examples for every class and method.

Continuing Commitment to You

  • NO Royalties
  • FREE technical support
  • Online FAQ And TechNotes -- Check here often.
  • FREE source code in C++ and assembly - complete, not "shrouded"
  • Examples for every public function that compile and run - in online help and source files
  • Base classes documented so that you can extend the library
  • Comm++ users will continue to receive prompt technical support as they have over the past 18 years!

Current Version

  • Current version Is 3.07
  • Downloadable updates For downlevel users available on our web site.

Back     Return to home page     To top of this page        Greenleaf Comm++

products | serial comm libraries | protocol analyzers | serial hardware
data compression/archiving/encryption | About Us | news | Updates
new secure store | downloads | site map

Google
Web GreenleafSoft