亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? ac48drhi.c

?? Audiocodes old vision DSP driver
?? C
?? 第 1 頁 / 共 5 頁
字號:
/************************************************************************/
/*           *   AudioCodes Ltd.   *   Copyright (c) 1998   *           */
/************************************************************************/
/* File Name:       Ac48DrHi.c                                          */
/************************************************************************/
/* DRIVERS PACKET VERSION:     481(1.30) / 480(1.60) / 483(1.00)        */
/************************************************************************/
/* 4804 OPERATION SOFTWARE VERSION SUPPORT:                             */
/*                       V 1.60 (December 1999) and above	            */
/************************************************************************/
/* 481xx OPERATION SOFTWARE VERSION SUPPORT:                            */
/*                       V 1.30 (October 1999) and above                */
/************************************************************************/
/* 4830x OPERATION SOFTWARE VERSION SUPPORT:                            */
/*                       V 1.00 (March 2000) and above                  */
/************************************************************************/
/* PURPOSE  :   This source file contains the High Level Driver.        */
/*              The High Level Drivers include routines that manage     */
/*              all the required communication with the AC48 by         */
/*              sending/receiving the appropriate commands and          */
/*              information.                                            */
/*                                                                      */
/* DATE     :	May 1998												*/
/* UPDATE       REASON TO UPDATE                                        */
/* ======       ================                                        */
/* 11/8/98      Adding 'Version' functions                              */
/* 18/9/98      Adding 'receive wrong packet'                           */
/* 19/10/98     Disable "Ac48xxSetHPIByteOrder()" from Setup device.    */
/*                                                                      */
/* 28/10/98     Update Ac48xxVersion function.                          */
/* 29/10/98     Correct the 'Ac48xxReceivePacket' in polling mode.      */     
/* 1/11/98      In "Ac48xxReceivePacket()" :                            */
/*                  (1) correct the  ILLEGAL_PACKET value .             */
/*                  (2) The 'sequence number' added to returned value   */
/*                      in case of "SNE".                               */
/* 26/1/99      Comment for Ac48xxReceivePacket function:               */
/*                  "PacketSize not include footer size, in eny case"   */
/* 27/1/99      Voice Attributes, Command additions...                  */
/* 4/1/99       Add "ILLEGAL_PACKET" error to Ac48xxTransmitPacket()    */
/* 15/6/99      'ROR' Flag Added insted of.., In Ac48xxReceivePacket()  */
/* 17/1/00      Add Ac48xxBootCompletely() and                          */
/*              Ac48xxBootCompletelyForDebugging() Functions            */
/************************************************************************/

#include <STDLIB.H>
#include <STDIO.H>
#include <STRING.H>
#include "Ac48DrUs.h"
#include "Ac48DrDf.h"
#include "Ac48DrHw.h"
#include "Ac48DrHi.h"
#include "Ac48DrLo.h"

unsigned int TransmitSequenceArray[NUMBER_OF_AC48_DEVICES][NUMBER_OF_CHANNELS];
unsigned int  ReceiveSequenceArray[NUMBER_OF_AC48_DEVICES][NUMBER_OF_CHANNELS];

/*======================================================================*/
/* Name    :        Ac48xxActiveCommand                                 */
/*======================================================================*/
/* Purpose :    This function transfers a specific channel to an active */
/*              mode, by sending the AC48 ACTIVE command.               */
/*                                                                      */
/* Inputs  :    int DeviceIndex:                                        */
/*                  An integer, performing the device index.            */
/*              int ChannelIndex: 	                                    */
/*                  An integer, performing the channel index.           */
/*              TDebugMode DebugMode	                                */
/*                  Debug mode, to use (see: AC48xxDebugCommand).       */
/*              TWaitMode WaitMode:                                     */
/*               	Wait / don't wait for the AC48 to be                */
/*                  ready to deal with a new Command,                   */
/*                  which uses the 'AC48xxTransmitPacket'               */
/*                  function.                                           */
/*                                                                      */
/* Output  :    int:                                                    */
/*                  ( 0) "AC_OK" for successful operation.              */
/*                  (-1) "PACKET-FULL" detection in                     */
/*                          "DONT_WAIT_PACKET_EMPTY" mode.              */
/*                          AC48 is not ready to transmit a new packet  */
/*                          (suitable mode for polling).                */
/*                  ( 2) "STATUS_ERROR" detected by the AC48.           */
/*======================================================================*/
int Ac48xxActiveCommand(int DeviceIndex, int ChannelIndex, 
						TDebugingData DebugingData, TWaitMode WaitMode)
{
	int Status;
	TActiveCommand ActiveCommand;
	ActiveCommand.Header.ConstAA=0xAA;
	ActiveCommand.Header.Id=ChannelIndex;
	ActiveCommand.Header.Const_0_0_10=0;
	ActiveCommand.Header.IdleCommandOpCode = ACTIVE_COMMAND_OP_CODE;
	ActiveCommand.Header.IdleCommandLength=0x04;
	Status = Ac48xxTransmitPacket(DeviceIndex, (char*)&ActiveCommand, 
												DebugingData, WaitMode);
	Ac48xxClearSequenceArrays(DeviceIndex, ChannelIndex);
	return Status;
}

/*======================================================================*/
/* Name    :        Ac48xxCasPortPresetCommand                          */
/*======================================================================*/
/* Purpose :    This function preset the A,B,C,D CAS signals to their   */
/*              init values.                                            */
/*                                                                      */
/* Inputs  :    int DeviceIndex:                                        */
/*                  An integer, performing the device index.            */
/*              int ChannelIndex: 	                                    */
/*                  An integer, performing the channel index.           */
/*              int SignalA                                             */
/*              int SignalB                                             */
/*              int SignalC                                             */
/*              int SignalD                                             */
/*              TDebugMode DebugMode	                                */
/*                  Debug mode, to use (see: AC48xxDebugCommand).       */
/*              TWaitMode WaitMode:                                     */
/*               	Wait / don't wait for the AC48 to be                */
/*                  ready to deal with a new Command,                   */
/*                  which uses the 'AC48xxTransmitPacket'               */
/*                  function.                                           */
/*                                                                      */
/* Output  :    int:                                                    */
/*                  ( 0) "AC_OK" for successful operation.              */
/*                  (-1) "PACKET-FULL" detection in                     */
/*                          "DONT_WAIT_PACKET_EMPTY" mode.              */
/*                          AC48 is not ready to transmit a new packet  */
/*                          (suitable mode for polling).                */
/*                  ( 2) "STATUS_ERROR" detected by the AC48.           */
/*======================================================================*/
int  Ac48xxCasPortPresetCommand(int DeviceIndex, int ChannelIndex, 
                         int SignalA, int SignalB, int SignalC, int SignalD, 
						TDebugingData DebugingData, TWaitMode WaitMode)
{
	TCasPortPresetCommand CasPortPresetCommand;
	CasPortPresetCommand.Header.ConstAA = 0xAA;
	CasPortPresetCommand.Header.Id = ChannelIndex;
	CasPortPresetCommand.Header.Const_0_0_10 = 0;
	CasPortPresetCommand.Header.IdleCommandOpCode = CAS_PORT_PRESET_COMMAND_OP_CODE;
	CasPortPresetCommand.Header.IdleCommandLength = 0x06;
    CasPortPresetCommand.SignalA = SignalA;
    CasPortPresetCommand.SignalB = SignalB;
    CasPortPresetCommand.SignalC = SignalC;
    CasPortPresetCommand.SignalD = SignalD;
    CasPortPresetCommand.Const_0_2_4 = 0;
    CasPortPresetCommand.Const_0_2_8 = 0;
	return Ac48xxTransmitPacket(DeviceIndex, (char*)&CasPortPresetCommand, 
												DebugingData, WaitMode);
}

/*======================================================================*/
/* Name    :        Ac48xxCheckHInt                                     */
/*======================================================================*/
/* Purpose :    This function check if an interrupt had been sent by    */
/*              AC48 to the host. This function suiteble for polling.   */
/*                                                                      */
/* Inputs  :    int DeviceIndex:                                        */
/*                  An integer, performing the device index.            */
/*                                                                      */
/* Output  :    int:                                                    */
/*                  (0)       No interrupt had been sent.               */
/*                  otherwise HINT had been sent by AC48.               */
/*======================================================================*/
int Ac48xxCheckHInt(int DeviceIndex)
{
	char Status;
	Status=Ac48xxHostRead(DeviceIndex, HPIC, First);
	Ac48xxHostRead(DeviceIndex, HPIC, Second);
	return (int)(Status & CHECK_HINT);
}

/*======================================================================*/
/* Name    :        Ac48xxClearHInt                                     */
/*======================================================================*/
/* Purpose :    This function Clear the interrupt, if had been sent by  */
/*              AC48 to the host.                                       */
/*                                                                      */
/* Inputs  :    int DeviceIndex:                                        */
/*                  An integer, performing the device index.            */
/*======================================================================*/
void Ac48xxClearHInt(int DeviceIndex)
{
	char Status;
	Status=Ac48xxHostRead(DeviceIndex, HPIC, First);
	Ac48xxHostRead(DeviceIndex, HPIC, Second);
	Ac48xxHostWrite((Status | CLEAR_HINT), DeviceIndex, HPIC, First);
	Ac48xxHostWrite((Status | CLEAR_HINT), DeviceIndex, HPIC, Second);
}

/*======================================================================*/
/* Name    :        Ac48xxClearSequenceArrays                           */
/*======================================================================*/
/* Purpose :    This function clears the driver's internal sequence     */
/*              arrays when there is a transition between Init/Run and  */
/*              Idle/Active modes. This assists the transmit and the    */
/*              receive functions in both Debug modes.                  */
/*                                                                      */
/* Inputs  :    int DeviceIndex:                                        */
/*                  An integer, performing the device index.            */
/*              int ChannelIndex: 	                                    */
/*                  An integer, performing the channel index.           */
/*======================================================================*/
void Ac48xxClearSequenceArrays(int DeviceIndex, int ChannelIndex)
{
	ReceiveSequenceArray[DeviceIndex][ChannelIndex]  = 0;
	TransmitSequenceArray[DeviceIndex][ChannelIndex] = 0;
}

/*======================================================================*/
/* Name    :        Ac48xxSetHPIByteOrder                               */
/*======================================================================*/
/* Purpose :    This function defines the order, AC48 will read and     */
/*              write bytes.                                            */
/*                                                                      */
/* Inputs  :    int DeviceIndex:                                        */
/*                  An integer, performing the device index.            */
/*              TOrder Order                                            */
/*                  Order: MSB_FIRST=0 / LSB_FIRST=1                    */
/*======================================================================*/
void Ac48xxSetHPIByteOrder(int DeviceIndex, TOrder Order)
{     			
	Ac48xxHostWrite(Order, DeviceIndex, HPIC, First);
	Ac48xxHostWrite(Order, DeviceIndex, HPIC, Second);
}
/*======================================================================*/
/* Name    :        Ac48xxVersion                                       */
/*======================================================================*/
/* Purpose :   return sowtware version packed in a structure.           */
/*                                                                      */
/*======================================================================*/
TVersion Ac48xxVersion(const char *DownloadBlock, char *Name) /*Neme[13]*/
{
	TVersion Version;
	int i;
	char String[5];
	String[4]=0; /* end of String */

	String[2] = DownloadBlock[0]+'0';
	String[3] = DownloadBlock[1]+'0';
	Version.Version = atoi(&String[2]);

	String[2] = DownloadBlock[2]+'0';
	String[3] = DownloadBlock[3]+'0';
	Version.SubVersion = atoi(&String[2]);

	String[2] = DownloadBlock[4]+'0';
	String[3] = DownloadBlock[5]+'0';
	Version.Month = atoi(&String[2]);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品福利电影一区二区三区四区| 午夜精品久久久久久| 亚洲欧洲99久久| 亚洲国产综合91精品麻豆| 奇米色一区二区| 国产精品香蕉一区二区三区| av男人天堂一区| 这里是久久伊人| 久久久久久久久久久久久久久99 | 亚洲第一在线综合网站| 青青草伊人久久| 粉嫩av一区二区三区在线播放 | 亚洲一区二区欧美日韩| 精品在线一区二区| 91在线播放网址| 欧美一区二区二区| 国产精品免费久久久久| 亚洲第一成人在线| 国产99一区视频免费| 欧美日韩电影在线播放| 久久久电影一区二区三区| 亚洲综合一区二区精品导航| 国产精品一区二区三区四区| 欧美色男人天堂| 国产精品情趣视频| 免费不卡在线视频| 99精品视频在线观看| 日韩一二三四区| 亚洲综合免费观看高清在线观看| 久久国产精品72免费观看| 99久久国产综合精品女不卡| 精品国精品自拍自在线| 亚洲精品国产一区二区精华液 | 欧美一区二区三区不卡| 中文字幕一区视频| 精品在线观看免费| 在线精品亚洲一区二区不卡| 久久综合九色综合欧美就去吻| 亚洲裸体xxx| 国产精品性做久久久久久| 欧美一区二区三区白人| 亚洲欧美韩国综合色| 国产大片一区二区| 在线播放日韩导航| 亚洲精品欧美专区| 不卡在线视频中文字幕| 精品国产自在久精品国产| 一区av在线播放| 成人av片在线观看| 久久久蜜桃精品| 蜜桃一区二区三区四区| 在线观看一区二区视频| 亚洲欧洲日韩在线| 成人天堂资源www在线| 久久综合九色综合久久久精品综合| 天天操天天干天天综合网| 在线看不卡av| 一区二区三区在线观看动漫 | 亚洲人成精品久久久久久| 国产.欧美.日韩| 欧美精品一区在线观看| 日韩av电影天堂| 这里是久久伊人| 日韩一区精品视频| 欧美日韩精品系列| 亚洲图片欧美综合| 91精品91久久久中77777| 亚洲三级在线免费| av毛片久久久久**hd| 亚洲欧洲美洲综合色网| 国产白丝精品91爽爽久久| 欧美精品一区二区三区很污很色的 | 在线观看区一区二| 亚洲色图制服诱惑| av电影在线观看完整版一区二区| 国产精品人人做人人爽人人添| 成人小视频免费观看| 中文字幕人成不卡一区| 成人av小说网| 亚洲精品高清在线| 在线观看一区二区视频| 性欧美大战久久久久久久久| 欧美日韩精品欧美日韩精品| 日韩一区欧美二区| 日韩亚洲欧美综合| 精品在线一区二区| 日本一区二区免费在线| 成人黄色在线网站| 亚洲女性喷水在线观看一区| 一本大道久久a久久精二百 | 欧美亚洲综合色| 日韩电影一区二区三区四区| 欧美一三区三区四区免费在线看| 蜜桃av一区二区在线观看| 久久综合狠狠综合| 粉嫩蜜臀av国产精品网站| 亚洲色图制服诱惑 | 免费美女久久99| 欧美成人一级视频| 国产美女视频91| 国产精品进线69影院| 一本大道综合伊人精品热热| 午夜电影一区二区三区| 26uuu精品一区二区三区四区在线| 国产精品综合网| 亚洲精品久久久久久国产精华液| 欧美精品免费视频| 韩国理伦片一区二区三区在线播放 | 亚洲国产毛片aaaaa无费看| 7777精品伊人久久久大香线蕉最新版| 国产主播一区二区| 亚洲欧美日韩在线不卡| 在线电影院国产精品| 国产精品一区二区在线播放| 亚洲免费观看高清| 69堂亚洲精品首页| 国产激情精品久久久第一区二区 | 色综合天天综合色综合av| 亚洲国产一区在线观看| 久久综合久久综合久久综合| 97久久超碰国产精品电影| 日韩激情一二三区| 日本一区二区动态图| 欧美色图免费看| 国产mv日韩mv欧美| 天天色天天爱天天射综合| 中文字幕乱码一区二区免费| 欧美日韩国产大片| 丁香婷婷综合激情五月色| 成人av电影在线网| 日韩不卡一区二区三区| 亚洲国产精品传媒在线观看| 欧美男人的天堂一二区| 国产成人一区二区精品非洲| 夜夜亚洲天天久久| 国产亚洲欧美一区在线观看| 欧美体内she精视频| 国产91露脸合集magnet| 午夜激情久久久| 中文字幕五月欧美| 日韩三区在线观看| 色婷婷综合久久久久中文一区二区| 美女视频免费一区| 亚洲自拍偷拍av| 中文一区在线播放| 日韩午夜电影在线观看| 在线亚洲一区二区| 大桥未久av一区二区三区中文| 免费视频一区二区| 亚洲国产精品麻豆| 国产精品美女久久久久aⅴ| 日韩欧美高清dvd碟片| 欧美最猛性xxxxx直播| 粉嫩一区二区三区性色av| 免费久久99精品国产| 亚洲线精品一区二区三区八戒| 亚洲国产精品精华液2区45| 日韩西西人体444www| 欧美日韩一区成人| 99久久精品免费看国产免费软件| 国产一区二区按摩在线观看| 日韩精品成人一区二区三区| 夜夜精品视频一区二区| 国产精品久久久久久户外露出| 精品欧美一区二区三区精品久久| 91精品国产综合久久香蕉麻豆| 91麻豆成人久久精品二区三区| 成人免费视频app| 国产一区二区不卡| 国产综合久久久久影院| 蜜桃一区二区三区在线观看| 视频一区中文字幕| 亚洲综合区在线| 伊人一区二区三区| 1024成人网| 中文字幕欧美一| 1000部国产精品成人观看| 欧美国产视频在线| 国产精品无圣光一区二区| 国产亚洲欧美日韩在线一区| 欧美精品一区二区久久婷婷| 日韩欧美国产系列| 欧美成人精品二区三区99精品| 日韩一级完整毛片| 日韩一级片在线播放| 精品日韩一区二区| 久久久夜色精品亚洲| 国产婷婷色一区二区三区| 久久亚洲春色中文字幕久久久| 欧美成人video| 久久综合久久鬼色中文字| 久久精品一区二区三区不卡牛牛| 久久免费午夜影院| 久久男人中文字幕资源站| 国产欧美精品一区二区色综合 | 成人一区二区在线观看| 成人一道本在线| 99综合电影在线视频| 91色综合久久久久婷婷| 在线中文字幕一区|