##################################################################### # # PRODUCT # Thor-2 Windows NT 4.0 Driver # and the Application Programming Interface (API) # # PRODUCT NUMBER # SDA-1002-1 # # PRODUCT REVISION # See most recent change log entry or the RevNo.h file # # COMPILER # Visual C++ 5.0 # # SEE ALSO # API Reference Guide for Thor Windows NT Driver (1211-1-SDA-1002) # # CONTACT INFORMATION # Odin TeleSystems Inc. # 800 East Campbell Road, Suite 300 # Richardson, Texas 75081-1873 # U. S. A. # Tel: +1-972-664-0100 # Fax: +1-972-664-0855 # Email: Support@OdinTS.com # URL: http://www.OdinTS.com # # Copyright (C) Odin TeleSystems Inc., 1996, 1997 # ##################################################################### Technical Support: ================= Email: Support@OdinTS.com Fax : +1-972-664-0855 Phone: +1-972-664-0100 (M-F 9 a.m. - 5 p.m. CST (-6 GMT)) DISTRIBUTION DIRECTORY STRUCTURE: ================================= SYSTEM32\DRIVERS Thor-2 Windows NT Device Driver LIB Thor-2 API lib compiled with Visual C++ 5.0 INC Thor-2 API Header files UTILS Utilities need to use the Thor-2 Board (T2boot and T2config). For a complete description these program please See "User Guide for Thor-2", Doc No. 1412-1-HAA-1004-1. DEMOS Demo programs (source and executable) using the Thor-2 API. SAPIAPP: HDLC send/receive demo program using the System API. Loops two Line interfaces. LAPIAPP: HDLC send/receive demo program using the Low Level API. Loops two Line interfaces. HAPIAPP: HDLC send/receive demo program using the High Level API. Loops two Line interfaces. DATAAPP: Example program using Transparent Mode Pipes. Transfers a binary file between two Line interfaces. T1APP: Example program demoing how to use the T1 specific features, such as the bit-robbed signaling. E1APP: Example program demoing how to use the E1 specific features, such as access to the Si and Sa bits. PHONEAPP: Example program for using the codecs (handsets) and the DTMF transceivers. PERFAPP: Example program demoing the use of multiple pipes (time-slots) to constantly send and receive HDLC frames. STATUSAPP: Simple application which checks the status of the driver and the installed Thor-2 boards. AUDIOAPP: Demonstrates Thor-2's audio capabilities and the use of hdlcMemoryXXXXX() API functions. SS7APP: Demonstrates Thor-2 driver's SS#7 support and the use of hdlcSS7XXXXX() API functions. RX31TSAPP: Demonstrates the use of a 31 timeslot wide receive pipe How to Build the Demos? ======================= To build the Demo Applications open the DEMOS.DSW Workspace in the Microsoft Visual C++ 6.0. The DEMOS.DSW file is located in the DEMOS directory. Each Demo program has their project file *.dsp located in the corresponding source directory. For more information on each demo, please refer to the header comment in the beginning of each source file. For a description of the API please refer to the document: Appliation Programming Interface (API) Reference Guide, Doc. No. 1211-1-SDA-1002. CHANGE LOG ========== What is new in release, 1.42 ============================ Added a new API function drvReadEx() which works like drvRead() except that it can read multiple frames from the driver FIFO in one call. Using drvReadEx() will increase performance for an application receiving a high frequency of frames. The demo program Rx31TsApp shows an example of how to use this function. The drvInit() function now flushes the driver FIFO in the NT driver (just as it is done in the VXD and DOS driver). What is new in release, 1.41 ============================ Added demo application Rx31TsApp which uses a 1984kbps (31 timeslots) HDLC super-pipe. Corrected a problem in the driver that would cause him to never return from the drvRead() function if the HDLC controller had ended up in an overrun state. The project files for the Demos are now in Visual C++ 6.0 format. What is new in release, 1.40 ============================ drvReadTma() did not set the board number correctly (it always returned board number 0). This has now been corrected. What is new in release, 1.39 ============================ Added hdlcSS7SendDataEx() function which replaces hdlcSS7SendData() and hdlcSS7SetFisu(). The hdlcSS7SendDataEx() function has support for continous sending of LSSUs. For an example of how to use this function please see the SS7APP.C demo program. What is new in release, 1.38 ============================ Added new function hdlcSS7SetFisuEx() which supports transmitting non-standard FISU lengths. Modified SS7APP to use the new function hdlcSS7SetFisuEx() if the command line switch /X is supplied. What is new in release, 1.37 ============================ Increased performance when transferring many small blocks of data. In SAPI the count of bytes returned is now exactly the amount of bytes returned. No padding. Now possible to dynamically reassign timeslots to an already initialized pipe with hdlcInitPipe(). What is new in release, 1.36 ============================ Added status message LPU_INTERRUPT_REQUEST. What is new in release, 1.35 ============================ Internal storage of serial number information changed. What is new in release, 1.34 ============================ T2BOOT now runs correctly in diagnostics mode (A=DIAG). Internal implementation of a delay function has been corrected. What is new in release, 1.33 ============================ Corrected a bug which caused a blue screen error when the driver was stopped (after it had been started and stopped a number of times). Corrected a memory leak which occurred when the driver was stopped. Corrected a bug in drvCleanup() where this function would return a return code other than THOR_SUCCESS, even though the function call completed successfully. Clock mode MVIP_MASTER_CLK (when Thor-2 is a MVIP slave) now works properly. Users of SAPI can use the Error.H include file to convert from a ThorRC code to an error string. What is new in release, 1.32 ============================ Corrected bug in NT that produced an incorrect timestamp What is new in relase 1.31 ============================ Clock modes INTERNAL and EXTERNAL_8K are now correctly sourced. What is new in relase 1.24.3 ============================ Implemented drvFifoXXX() functions which allow the application to monitor the status of the driver's message FIFO. Corrected an undesired feature that caused the drvReadMemBlock() to return wrong data. What was new in release 1.24? ============================ The Driver now comes with T2ConfigW.exe application, which provides a graphical user interface for configuring the T1/E1 communications parameters on the board. The driver now provides support for SS#7. Pipes can be configured in PM_HDLC_SS7 mode. In the SS#7 mode pipes will constantly send Fill-In Signalling Units (FISUs). At the receiving end, the FISUs (as well as LSSUs or MSUs) can be filtered out by specifying an applicaple filter mask. See 'Apps\SS7App\SS7App.c' and 'inc\hdlc.h' for details. The new hdlcSS7XXXX() functions are: hdlcSS7SetFisu(...) hdlcSS7GetSendStatus(...) hdlcSS7GetReceiveStatus(...) hdlcSS7SetFilter(...) hdlcSS7GetFilter(...) hdlcSS7SendData(...) The driver now also implements new hdlcMemoryXXXX() functions: hdlcMemoryAlloc(...) hdlcMemoryFree(...) hdlcMemoryWrite(...) hdlcMemoryRead(...) hdlcMemoryCheckId(...) hdlcMemoryCheckUsage(...) hdlcMemoryStartIdlePattern(...) hdlcMemorySendData(...) hdlcMemorySendDataList(...) hdlcMemoryGetSendStatus(...) which allow data (e.g. transparent data) to be pre-loaded to the memory and then send from there over and over again. for more details on these functions please refer to 'Apps\AudioApp\AudioApp.c', 'inc\hdlc.h' header file and the API reference guide. The driver now also supports sending of MF digits using the Codecs. cdSendMf(..) For more information, see the header file 'inc\cd.h' and the API reference guide. LAPIAPP now provides an example on how to access and use multiple Thor-2 boards in one PC. What was new in release 1.22? ============================= The driver now supports event driven applications. The System API (SAPI) can notify the application with a Win32 Event when a message has been received or line/HW status has changed. (See IOCTL_DRV_START_EVENT_NOTIFICATIONS) The Low-Level API (LAPI) and High-Level API (HAPI) contain functions that allow the application to register a call-back function to be called by the driver upon reception of a message or Line/HW status change. (See drvRegisterCallback() and thorRegisterCallback(), respectively ) The demo applications (LAPIAPP, HAPIAPP, SAPIAPP, PHONEAPP, T1APP, and E1APP) have been modified to work with this event driver paradigm. I.e. they do not poll the driver any more. They will go to sleep instead and will only wake up when they receive an event/callback from the driver or a Windows keyboard event. HOW TO START AND STOP THE DRIVER? ================================= To start the driver, open up a command window and enter the command "NET START THOR2". Note: You must have administrative priviledges. To stop the Thor-2 driver, issue command "NET STOP THOR2" HOW TO TEST THAT THE THOR-2 DRIVER/BOARD WORKS? =============================================== Using StatusApp --------------- Run STATUSAPP.EXE in a DOS command window. Example output for one working board is shown below: STATUSAPP, Nov 5 1997, Odin TeleSystems Inc. Checks the status of the driver and the installed boards Using Driver 'Thor-2 Windows NT Driver SDA-1002-1, Rev 1.24, Nov 5 1997' Driver status is OK! Number of Boards installed: 1 Irq = 5 IoBaseAddr = 0x280 InfoBufferSize = 32768 BOARD #0: memWinOffset = 0xD0000 memWinSize = 0x2000 ioWinOffset = 0x290 ioWinSize = 0x10 brdDramSize = 2097152 Searching for Thor-2 Board #0 ....Found. Checking board #0 status ....OK. Using LapiApp ------------- Connect the Li0 RJ11 and Li1 RJ11 together with the supplied Li Loop Cable. Start Application LAPIAPP.EXE in a DOS command window. Verify that the the Physical layer comes up: Li:0 Layer 1 Status = OK Li:1 Layer 1 Status = OK Press 't' to send a dummy HDLC messages from Line Interface 0 to Line Interface 1 through the Loop Cable. The received message should be displayed in the screen. Send a message on pipe 0 0 Src: 001 #005 09:24:52.22 [00] HDLC 00 01 02 03 04 05 06 07 08 09 00 01 02 03 04 05 06 07 08 09 00 01 02 03 04 05 06 07 08 09 00 01 02 PLANNED IMPROVEMENTS IN FUTURE RELEASES: ======================================== Add support for V.110 and X.30 Add support for different driver operation modes: DM_STANDALONE, DM_LOW_LAYER_LPU, DM_HIGH_LAYER_CPU, DM_PARALLEL_LPU, and DM_PARALLEL_CPU