⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tw8adll.txt

📁 处理各种电话投诉的危机情况
💻 TXT
📖 第 1 页 / 共 5 页
字号:


                        (R) D&E TurboWay (TM) TW8A 系列电话卡
                            32位编程接口(TW8A.DLL)使用说明

                                  (适用于 Win95 )



包含文件
========
   TW8A32.PAS      编程接口Delphi4.0声明文件
   TW8A32.BAS      编程接口VB5.0声明文件 
   TW8A32.PRG      编程接口VisualFoxpro5.0声明文件
   TW8ADLL.TXT     本文件
   TW8ADPH4.ZIP    Delphi 4.0 编程范例
   TW8APB6.ZIP     PowerBuilder 6.0 编程范例           
   TW8AVB5.ZIP     Visual Basic 5.0 编程范例
   TW8AVC5.ZIP     Visual C++ 5.0 编程范例
   TW8AVFP5.ZIP    Visual Foxpro 5.0 编程范例
   在Win95操作系统中,各种编程语言都可使用动态连接库中的函数,因此TW8A卡的32位驱动程序只提供
   一个动态连接库作为编程接口,并根据各中语言使用动态连接库方法提供相应的动态库声明文件以
   供使用.
   

使用方法
========
  1. VC5.0
     在调用接口函数的源程序中包含头文件TW8A.H
     将输入库TW8A.LIB连接至工程中
  2. BC5.0
     用Borland C++5.0的implib.exe 生成动态连接库TW8A.DLL的输入库TW8A.LIB,方法如下:
         implib tw8a.lib tw8a.dll
     在调用接口函数的源程序中包含头文件TW8A.H
     将输入库TW8A.LIB连接至工程中
  3. Delphi4.0
     通过在单元文件中加入语句
     uses tw8a32
     将TW8A32.PAS连接到单元文件中之后即可使用其中的常量及函数过程
  4. VB5.0
     通过菜单'Project\Add Modul'将TW8A32.BAS连接到工程文件中,之后
     即可使用其中的常量及函数过程.
  5. VisualFoxpro5.0
       在使用此接口中的函数之前, 用户在FoxPro 语言源代码中应先装入
       电话卡接口函数:
       SET PROCEDURE TO TW8A32.PRG ADDITIVE 
       =TW_LoadAPI()
       之后,在FoxPro 语言源代码中才可以使用接口库文件所提供的函数.
  6. PowerBuilder 6.0
     由于PowerBuider6.0将所有的源代码都保存在.pbl文件中,因此每次建立新应用时,
     都必须手动一步一步地将与动态库的声明相关的代码添加到.pbl文件中.添加动态库
     声明的一般步骤如下:
         (1) 首先建立一个应用,并将其存入.pbl文件中.
         (2)  定义动态库中使用到的结构,其操作方法如下:
                1) 点击Properties图标,将任一范例的.pbl文件加入到应用的Library属性的
                   Library Search Path列表框中.
                2) 点击Structure图标,在Application Libraries列表中选中范例的.pbl文件,
                   在structure列表中选择要定义的结构,然后点击OK命令条.
                3) 选择菜单File/Save As将要定义的结构保存到twapp.pbl中.
                4) 相同步骤拷贝其他结构.完成后将范例的.pbl文件从应用的Library属性中
                   去掉.
         (3) 声明动态库中的函数,其操作如下:
                1) 从任一范例中拷贝函数声明至剪贴板,即打开任一范例,点击Script图标,选择
                   菜单Declare/Global External Function,用鼠标选中所有的函数声明,按Ctrl+c,
                                 即可将所有的函数声明拷贝到剪贴板中.
                2) 将函数声明拷贝至应用中,即打开应用,点击Script图标,选择菜单Declare/Global External Function,
                   然后按Ctrl+V,即可将所有函数声明从剪贴板中拷贝到应用中.
         (4) 相同方法,通过选择菜单Declare/Global Variable,将需要的常量声明加入到应用中.
     完成上述操作后,就可以在程序中使用动态连接库中的函数及相关的常量及结构定义了.   
       
系统常量定义
============

MAX_ADAPTERS=8	一台计算机中可以安装 TW8A 的最大块数 (8)
MAX_CHANNELS=64	每块 TW8A 有 8 个通道, 最大通道数为 (8 * MAX_ADAPTERS = 64)
DTMF_LEN=32	每个通道在初始化后最多可接收的 DTMF 码 (32)
SIGNAL_TYPE=8	信号音种类数 (8)
SIG_UNKNOWN=96	未知的信号音 (0x60)
SIG_TIMEOUT=97	信号音检查超时 (0x61)
SIG_OFFHOOK=98	被呼叫方已经摘机 (0x62)
SIG_NOBODY=99	电话拨通之后无人接听 (0x63)
SIG_SILENCE=64	无信号音 (0x40)
SIG_DIAL=65	拨号音 (0x41)
SIG_RING=0	振铃回音 (0x00)
SIG_BUSY1=1	忙音 1 (0x01)
SIG_BUSY2=2	忙音 2 (0x02)


返回码常量定义
==============

E_DRIVER=255	TW8A 驱动程序没有安装
E_OK=0		正常
E_COMMAND=1	功能号错误
E_LENGTH=2	长度错误
E_PLAY_RECORD=3	录放音不能同时进行
E_CHANNEL=4	非法的通道号
E_INTERRUPT=5	错误的中断号(可视为E_DRIVER)

通道类型常量定义
================

CT_INTERNAL=0	内线通道
CT_EXTERNAL=1	外线通道
CT_EMPTY=2	空通道


压缩比常量定义
==============

RATE_64K=0	8K字节/秒
RATE_32K=1	4K字节/秒
RATE_16K=2	2K字节/秒
RATE_8K=3	1K字节/秒
RATE_48K=4	6K字节/秒
RATE_24K=5	3K字节/秒
RATE_12K=6	1.5K字节/秒
RATE_6K=7	0.75K字节/秒


数据类型定义
============


字符名称枚举类型(只适用于C语言)
-------------------------------

字符名称类型用在 TW_MakeSentence(...) 中, 如果应用程序需要在放音时自动念
数字, 那么这个功能是很有用的. 其中 CN_NOTHING 不产生任何语音. 其定义如下:

typedef enum {
	CN_END = 0,		// End of sentence (Also end of string)
	CN_NOTHING,		// Do nothing
	CN_DIGIT0, CN_DIGIT1, CN_DIGIT2, CN_DIGIT3, CN_DIGIT4,	// 0 - 4
	CN_DIGIT5, CN_DIGIT6, CN_DIGIT7, CN_DIGIT8, CN_DIGIT9,	// 5 - 9
	CN_TEN,			//          10
	CN_HUNDRED,		//         100
	CN_THOUSAND,		//       1,000
	CN_10THOUSAND,		//      10,000
	CN_100MILLION,		// 100,000,000
	CN_POINT,		// "."
	CN_NEGATIVE,		// "-"

	CN_LAST			// To be continued by YOU !
} CHAR_NAME;

另外, 用户也可以在 CN_LAST 后扩展定义其他的字符名称, 例如

	typedef enum {
		UCN_USERDEF1 = CN_LAST,
		UCN_USERDEF2,
		...
		UCN_USERDEFn,
		UCN_LAST
	} USERDEF_CHAR_NAME;


参数控制块(不适用于Visual Foxpro5.0)
------------------------------------
    1. C语言定义  
       typedef struct {
	 WORD	SilenceSigMin;	// (125=5秒)无信号音的最短长度 (单位: 40ms)
	 WORD	DialSigMin;	// ( 50=2秒)拨号音的最短长度 (单位: 40ms)
	 WORD	SignalPara[SIGNAL_TYPE][4];
	 // 各种信号音的时间参数 (单位: 40ms)
	 // 其中第一个下标表示信号音类型, 用户可以定义信号音类型 3 到 7
	 //	[x][0] : 信号音为低时的最小时间
	 //	[x][1] : 信号音为低时的最大时间
	 //	[x][2] : 信号音为高时的最小时间
	 //	[x][3] : 信号音为高时的最大时间
	 //
	 //	缺省值: [SIG_RING ][] = 90,110, 22, 28  (4, 1 秒)
	 //		[SIG_BUSY1][] =  7, 11,  7, 11  (0.35, 0.35 秒)
	 //		[SIG_BUSY2][] = 11, 14, 11, 14  (0.5, 0.5 秒)
      } PCB_STRUC;

   2. VB中的定义
      Type PCB_STRUC
          SilenceSigMin As Integer     '(125) 无信号音的最短长度(单位:40ms)
          DialSigMin As Integer        '(50) 拨号音的最短长度
          SignalPara(31) As Integer    '各种信号音的参数
          //每种信号音有4个参数,因此一共有4XSIGNAL_TYPE=32个参数
          //每种信号音的4个参数依次为(TYPE为信号音的种类0-7):
          ' SignalPara(TYPE*4+0):信号音为低时的最小时间
          ' SignalPara(TYPE*4+1):信号音为低时的最大时间
          ' SignalPara(TYPE*4+2):信号音为高时的最小时间
          ' SignalPara(TYPE*4+3):信号音为高时的最大时间
          //缺省值:SignalPara(SIG_RING*4+0)=90
            SignalPara(SIG_RING*4+1)=110
            SignalPara(SIG_RING*4+2)=22
            SignalPara(SIG_RING*4+3)=28
            SignalPara(SIG_BUSY1*4+0)=7
            SignalPara(SIG_BUSY1*4+1)=11
            SignalPara(SIG_BUSY1*4+2)=7
            SignalPara(SIG_BUSY1*4+3)=11
            SignalPara(SIG_BUSY2*4+0)=11
            SignalPara(SIG_BUSY2*4+1)=14
            SignalPara(SIG_BUSY2*4+2)=11
            SignalPara(SIG_BUSY2*4+3)=14
           //其余都为0
      End Type  
   3. Delphi中的定义
      PCB_STRUCT = record
          SilenceSigMin: word;  '(125) 无信号音的最短长度(单位:40ms)
          DialSigMin: word;     '(50) 拨号音的最短长度
          SignalPara: array[0..SIGNAL_TYPE-1,0..3] of word; '各种信号音的参数
          //每种信号音有4个参数,因此一共有4XSIGNAL_TYPE=32个参数
          //每种信号音的4个参数依次为(TYPE为信号音的种类0-7):
          ' SignalPara[TYPE][0]:信号音为低时的最小时间
          ' SignalPara[TYPE][1]:信号音为低时的最大时间
          ' SignalPara[TYPE][2]:信号音为高时的最小时间
          ' SignalPara[TYPE][3]:信号音为高时的最大时间
          //缺省值:SignalPara[SIG_RING][0]=90
             SignalPara[SIG_RING][1]=110
             SignalPara[SIG_RING][2]=22
             SignalPara[SIG_RING][3]=28
             SignalPara[SIG_BUSY1][0]=7
             SignalPara[SIG_BUSY1][1]=11
             SignalPara[SIG_BUSY1][2]=7
             SignalPara[SIG_BUSY1][3]=11
             SignalPara[SIG_BUSY2][0]=11
             SignalPara[SIG_BUSY2][1]=14
             SignalPara[SIG_BUSY2][2]=11
             SignalPara[SIG_BUSY2][3]=14
         //其余都为0
      end;
      PPCB_STRUCT = ^PCB_STRUCT;
  
    4. PowerBuilder中的定义
      structure pcb_struc
          UnsingedInteger SilenceSigMin      '(125) 无信号音的最短长度(单位:40ms)
          UnsingedInteger DialSigMin         '(50) 拨号音的最短长度
          UnsignedInteger SignalPara[32]    '各种信号音的参数
          //每种信号音有4个参数,因此一共有4XSIGNAL_TYPE=32个参数
          //每种信号音的4个参数依次为(TYPE为信号音的种类0-7):
          ' SignalPara[TYPE*4+1]:信号音为低时的最小时间
          ' SignalPara[TYPE*4+2]:信号音为低时的最大时间
          ' SignalPara[TYPE*4+3]:信号音为高时的最小时间
          ' SignalPara[TYPE*4+4]:信号音为高时的最大时间
          //缺省值:SignalPara[SIG_RING*4+1]=90
            SignalPara[SIG_RING*4+2]=110
            SignalPara[SIG_RING*4+3]=22
            SignalPara[SIG_RING*4+4]=28
            SignalPara[SIG_BUSY1*4+1]=7
            SignalPara[SIG_BUSY1*4+2]=11
            SignalPara[SIG_BUSY1*4+3]=7
            SignalPara[SIG_BUSY1*4+4]=11
            SignalPara[SIG_BUSY2*4+1]=11
            SignalPara[SIG_BUSY2*4+2]=14
            SignalPara[SIG_BUSY2*4+3]=11
            SignalPara[SIG_BUSY2*4+4]=14
           //其余都为0


系统参数结构(不适用于Visual Foxpro5.0)
--------------------------------------
    1. C中的定义
       typedef struct {
	   BYTE	MajorVer;	// 驱动程序主版本号
	   BYTE	MinorVer;	// 驱动程序副版本号
	   BYTE	IRQNo;		// 第一块 TW8A 的 IRQ 设置
	   BYTE	IntrNo;		// IRQ 对应的中断号

   	   PCB_STRUC 	*PCBAddr;	// 指向 PCB_STRUC 的指针

	   WORD	AdapterNum;	// 系统中安装的 TW8A 卡的数量
	   WORD	ChannelNum;	// 系统中可使用的通道数
	   WORD	TW8ASeg[MAX_ADAPTERS]; // 每块 TW8A 使用的段地址
      } SP_STRUC;

    2. VB中的定义
       Type SP_STRUC
           MajorVer  As Byte  //驱动程序主版本号
           MinorVer As Byte   //驱动程序副版本号
           IRQNo As Byte      //第一块TW8A卡的IRQ设置
           IntrNo  As Byte    //IRQ对应的中断号
           PCBAddr As Long    //PCB_STRUC的地址
           AdapterNum As Integer //系统中安装的TW8A卡的数量
           ChannelNum As Integer //系统中可使用的通道数
           TW8ASeg(MAX_ADAPTERS) As Integer //每块TW8A使用的段地址
       End Type

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -