7,762
社区成员
发帖
与我相关
我的任务
分享
//使用步骤:
// 1 OPENPORT打开串口
// 2 GetCurrentData获取当前音量值,或用SendParameter控制音量等
// 3 CLOSEPORT关闭串口
#ifndef _CTRLPORT_H_
#define _CTRLPORT_H_
#define ERR_OK 0
#define ERR_HEAD 0x01
#define ERR_CHECK 0x02
#define ERR_TAIL 0x03
#define ERR_STATUS 0x04
#define ERR_COMMAND 0x5
#define ERR_PARAMETER 0x6
#define ERR_NORESP 0x7
#define ERR_COMMAND1 0x8
#define ERR_COMMAND2 0x9
#define ERR_OPENPORT 0x10
//函数:OPENPORT
//功能:打开串口端号
//参数:
//port:串口号,1表示COM1,2表示COM2等等
//返回值:
//TRUE:表示串口打开成功
//FALSE:表示串口打开失败
BOOL OPENPORT(BYTE port);//port=1(COM1)..4(COM4),etc
//函数:CLOSEPORT
//功能:关闭已打开的串口,与OPENPORT配套使用
//返回值:
//TRUE:表示操作成功
//FALSE:表示操作失败
BOOL CLOSEPORT();
//函数:SendParameter
//功能:控制机器
//参数:
//length:数据长度
//dat:数据缓冲区
//说明:
//SendParameter支持命令字如下,详细见DSK51串口控制DLL用法说明.doc
// 命令字 描述
// 100A 总音量
// 6016 音乐左音量
// 6017 音乐右音量
// 1006 麦克风音量
// 8070 效果音量
// 4008 超低音音量
// 1031 麦克风变调
// 5031 音乐变调
// 7010 混响
// 7020 回声
//返回值:
// ERR_OK(0):表示操作成功
// 不为零:表示操作失败,可能为ERR_COMMAND1错误或者ERR_COMMAND2错误
//示例:
//控制主音量大小为-10dB
// BYTE dat[3];
// dat[0]=0x10;
// dat[1]=0x0A;
// dat[2]=0x16;
// SendParameter(3,dat);
BOOL SendParameter(BYTE length ,BYTE *dat);
struct _DATA_STRUCT_
{
BYTE master; //主音量
BYTE music_left;//音乐左音量
BYTE music_right;//音乐右音量
BYTE mic;//麦克风音量
BYTE effect;//效果音量
BYTE subwoofer;//超低音音量
BYTE mic_pitch;//麦克风变调
BYTE music_pitch;//音乐变调
BYTE rev;//混响效果
BYTE echo;//回声效果
};
//函数: GetCurrentData
//功能:获取机器当前的音量值
//参数:
//data:DSK51结构的引用,返回值存放在此结构中
//返回值:
// ERR_OK:表示操作成功
// 不为零:表示操作失败
BOOL GetCurrentData(struct _DATA_STRUCT_ &data);
#endif
/////////////////
Private Const ERR_OK = 0
Private Const ERR_HEAD = &H1
'......
Private Type _DATA_STRUCT_
master As Byte
music_left As Byte
'......
End Type
Private Declare Function GetCurrentData Lib "DLL 名称" (ByVal data As Long) As Long
' 调用
Dim data As _DATA_STRUCT_
data.xxx = xxx
'......
Dim lngErrorCode As Long
lngErrorCode = GetCurrentData(VarPtr(data))