(CL3000)MiniLED.h

功能:用来定义控制系统常用的数据结构以及调用dll中的功能函数,直接将下载的MIniLED.h/MiniLED.cpp拷贝到开发者创建项目目录下。

/* Copyright (C) Lytec Inc., 2010 */
/* All rights reserved */

#ifndef MiniLEDH
#define MiniLEDH

#include <windows.h>

// 节目播放效果
enum
{
  EFFECT_FOLLOW = 0, // 同前一节目的退出效果/同后一节目的进入效果
  EFFECT_RANDOM,     // 随机模式
  EFFECT_DIRECT,     // 直接显示/消失
  EFFECT_TOLEFT,     // 向左移入/移出
  EFFECT_TOUP,       // 向上移入/移出
  EFFECT_MELT,       // 溶入/溶出
  EFFECT_EXRIGHT,    // 向右展开/擦除
  EFFECT_EXDOWN,     // 向下展开/擦除
  EFFECT_EXLEFT,     // 向左展开/擦除
  EFFECT_EXUP,       // 向上展开/擦除
  EFFECT_ARROUND,    // 从中心向四周展开/擦除
  EFFECT_EXHCENTER,  // 从中间向左右两边展开/擦除
  EFFECT_EXHSIDE,    // 从左右两边向中间展开/擦除
  EFFECT_EXVCENTER,  // 从中间向上下两边展开/擦除
  EFFECT_EXVSIDE,    // 从上下两边向中间展开/擦除
  EFFECT_TODOWN,     // 向下移入/移出
  EFFECT_TORIGHT,    // 向右移入/移出
  EFFECT_HDWINDOW,   // 水平下拉百叶窗
  EFFECT_HUWINDOW,   // 水平上拉百叶窗
  EFFECT_VRWINDOW,   // 垂直右拉百页窗
  EFFECT_VLWINDOW,   // 垂直左拉百页窗
  EFFECT_CIRCLE,     // 扇形展开
  EFFECT_LOZENGE,    // 菱形展开
  EFFECT_DROPDOWN,   // 向下拉入/拉出
  EFFECT_DROPRIGHT,  // 向右拉入/拉出
  EFFECT_FLASH3      // 闪烁三次
};

#pragma pack(1)

/*
 * 节目表项结构定义
 */
typedef struct               // 16字节
{
  WORD  Flag;                // D1-D0   : 本节目项所属区域号(0-3)
                             // D5-D2   : 0000-本节目表项为文件 0001-本节目表项为实时版面
                             // D15-D6  : 本节目表项所属组号0-999,缺省填0
  WORD	PicFIndex;           // D10-D0  : 图片文件序号(0-2047)或实时版面序号(0-3)
                             // D15-D11 : 保留,填00000
  DWORD	Effect;              // D5-D0   : 进入播放效果,见EFFECT_宏定义
                             // D11-D6  : 退出播放效果,见EFFECT_宏定义
                             // D31-D12 : 保留,填0
  DWORD SpeedStay;           // D3-D0   : 进入移动速度,0-12分别表示最慢到最快的移动速度,大于12按12处理
                             // D7-D4   : 退出移动速度,0-12分别表示最慢到最快的移动速度,大于12按12处理
                             // D27-D8  : 停留时间,秒,若为0xFFFFF则无限停留
                             // D31-D28 : 保留,填0
  DWORD	Schedule;            // 允许播放的开始结束时间,不用定时填0xFFFFFFFF
                             // D5-D0   : 开始分
                             // D11-D6  : 结束分
                             // D16-D12 : 开始小时
                             // D21-D17 : 结束小时
                             // D24-D22 : 保留,填111
                             // D31-D25 : 周定时,D31对应周日,D30-D25对应周六-周一
} ProgItemType;

typedef struct
{
  BYTE Type;                 // 文件类型 0-单红图片 1-红绿双色图片
  BYTE PicCount;             // 图片个数
  WORD PicHeight;            // 图片高度
  WORD PicWidth;             // 图片宽度
  WORD PicOffset;            // 第一个图片在文件内的偏移(文件的第一个字节偏移为0)
  WORD LastPicH;             // 最后一个图片高度
  WORD LastPicW;             // 最后一个图片宽度
} PicFileHdr;

typedef struct
{
  BYTE Second;
  BYTE Minute;
  BYTE Hour;
  BYTE Day;
  BYTE Month;
  BYTE Week;
  BYTE Year;
  BYTE NC;                   // 保留,填0
} ClockType;

// 系统运行状态结构
typedef struct
{
  BYTE  Ver[4];              // 版本:Ver[0]硬件主次版本,BCD码,即0x10代表1.0,主版本为卡类型,次版本为PCB版本
                             //       Ver[1]硬件功能附加说明码,保留,填0
                             //       以上两个字节由系统初始化时检测硬件设置后填写
                             //       Ver[2],Ver[3],软件版本,BCD码,由系统初始化时拷贝
  BYTE  RSFlag;              // D0    : 是否插上测试短路插 0未插上 1插上
                             // D1    : LEDPwrSwitch 屏体电源开关状态 0 - 断电 1 - 通电
                             // D2    : DS18B20温度芯片存在状态 0-不可用 1-可用
                             // D3    : DS3231时钟芯片存在状态  0-不可用 1-可用
                             // D7-D4 : 保留,填0
  BYTE  BrightLevel;         // 控制卡实际输出的亮度等级 0 - 关屏 1..16 - 16级亮度设置,分别代表1/16亮度到全亮
  BYTE  Brightness;          // 亮度传感器采集亮度等级
  BYTE  Humidity;            // 湿度传感器采集湿度值, 0 ~ 99
  signed short Temperature;  // 温度传感器采集温度值, -55 ~ +125
  WORD  ChipTemp;            // 控制卡温度采集值
  WORD  Analog1;             // 模拟量1采集值
  WORD  Analog2;             // 模拟量2采集值
  BYTE  NC0[4];              // 保留,填0
  BYTE  Clock[8];            // 时钟,8个字节分别对应秒0-59、分0-59、时0-23、日1-31、月1-12、星期0-6、年0-99,一字节未用
  BYTE  PowerMode;           // 开关屏控制 0:强行关屏 1:强行开屏 2:自动开关屏
  BYTE  NC1[11];             // 保留,填0
  DWORD StorgeTotalSize;     // 外部存储Flash的总容量。单位:字节
  DWORD StorgePicSize;       // 图片文件可用容量。单位:字节
  DWORD PicFileSize;         // 实际使用的图片文件最大的字节数,由分区大小计算得到,为ExFlash扇区大小的倍数
  WORD  ProgGroup;           // 当前播放的节目组索引(0-1023)
  BYTE  LoadedFonts;         // 装载的可用字库数
  BYTE  NC2;                 // 对齐字节,填0
} RunningStateStru;

/*
 * 单字节编码的Range固定为32..255
 * Unicode和双(变)字节编码的Range由FontRange_t[]定义
 */
typedef union
{
  struct                     // 对应Unicode编码
  {
    WORD  CodeStart;	       // 编码起点
    WORD  CodeEnd;           // 编码终点
  } Unicode;
  struct                     // 对应双(变)字节编码
  {
    BYTE  Code1Start;	       // 第1组编码起点,也用于变字节编码中单字节编码的起点
    BYTE  Code1End;          // 第1组编码终点,也用于变字节编码中单字节编码的终点
    BYTE  Code2Start;	       // 第2组编码起点
    BYTE  Code2End;          // 第2组编码终点
  } DBCS;
} FontRange_t;

typedef struct               // 100字节
{
  DWORD FontDotAddr;         // 字库点阵存储地址(SPI FLASH地址),必须为页开始地址,0xFFFFFFFF表示该项未用
  WORD  Flag;                // 标识:bit1..0:字符编码类型, 0:单字节编码(ASCII, ISO8859) 1:Unicode 2:双(变)字节编码(GB2312, BIG5) 其它位保留填0
  BYTE  FontWidth;           // 字体宽度,0xFF无效
  BYTE  FontHeight;	         // 字体高度,0xFF无效
  WORD  CharBytes;           // 每字符字节数
  WORD  CharCount;           // 字库中字符个数,乘以每字符字节数即为字库点阵大小
  BYTE  RangeCount;          // 编码区个数,最多支持8个Range
  BYTE  RangeCountH;         // 半角字符(实际字符宽度为字体宽度的一半)编码区个数。
                             // 定宽字库可包含半角和全角两种宽度的字符,半角字符存储在字库的前面,后面是全角字符
  BYTE  NC[6];               // 保留,填0
  char  Name[16];            // 字库名称,可以使用名称来引用字库,其字符只能使用ASCII码,格式为例 songti-16x16
  FontRange_t Range[16];     // 字库编码区结构,最多支持16个Range
} FontInfoStru;

#pragma pack()

typedef int  (__cdecl *_MC_ComInitial    )(WORD mDevID, int ComPort, int Baudrate, int TimeOut, int Retries, int LedNum);
typedef int  (__cdecl *_MC_NetInitial    )(WORD mDevID, char *Password, char *RemoteIP, int TimeOut, int Retries, WORD UDPPort);
typedef BOOL (__cdecl *_MC_Close         )(WORD mDevID);
typedef BOOL (__cdecl *_MC_Reset         )(WORD mDevID, DWORD flag);
typedef BOOL (__cdecl *_MC_SetLEDNum     )(WORD mDevID, int LedNum);
typedef BOOL (__cdecl *_MC_SetRemoteIP   )(WORD mDevID, char *RemoteIP);
typedef BOOL (__cdecl *_MC_ControlPlay   )(WORD mDevID, DWORD flag);
typedef BOOL (__cdecl *_MC_SetBright     )(WORD mDevID, BYTE Brightness);
typedef BOOL (__cdecl *_MC_SetPowerMode  )(WORD mDevID, BYTE Mode);
typedef BOOL (__cdecl *_MC_SetAutoPower  )(WORD ID, BYTE OnHour, BYTE OnMinute, BYTE OffHour, BYTE OffMinute);
typedef BOOL (__cdecl *_MC_SendBrightTable)(WORD mDevID, WORD *pBrightTable);
typedef BOOL (__cdecl *_MC_SetDispParams )(WORD mDevID, BYTE *pData, WORD Len);
typedef BOOL (__cdecl *_MC_SetClock      )(WORD mDevID);
typedef BOOL (__cdecl *_MC_GetClock      )(WORD mDevID, ClockType *clk);
typedef BOOL (__cdecl *_MC_GetRunTimeInfo)(WORD mDevID, BYTE *Buff, WORD offset, WORD len);
typedef BOOL (__cdecl *_MC_ChangeGroup   )(WORD mDevID, WORD group, BYTE flag, BYTE *Param);

typedef BOOL (__cdecl *_MC_SendProgList  )(WORD mDevID, BYTE *pProgList, WORD ProgCount);
typedef BOOL (__cdecl *_MC_SendXMPXPic   )(WORD mDevID, WORD PicIndex, BYTE *PicBuff, DWORD PicLength);
typedef BOOL (__cdecl *_MC_GetXMPXPic    )(WORD mDevID, WORD PicIndex, BYTE *PicBuff, DWORD PicLength);
typedef BOOL (__cdecl *_MC_SendText      )(WORD mDevID, WORD TxtIndex, unsigned short Color, unsigned char *Str, BYTE Encode);
typedef BOOL (__cdecl *_MC_SendRTView    )(WORD mDevID, BYTE *pData, WORD len);
typedef BOOL (__cdecl *_MC_GetRTViewPkt  )(WORD mDevID, BYTE *pData, WORD offset, WORD Len);
typedef BOOL (__cdecl *_MC_SendFontInfo  )(WORD mDevID, BYTE *pData, WORD Len);
typedef BOOL (__cdecl *_MC_SendFontLibPkt)(WORD mDevID, BYTE FIdx, BYTE *pData, WORD Len, DWORD Offset);
typedef BOOL (__cdecl *_MC_ShowString    )(WORD mDevID, WORD Left, WORD Top, WORD Width, WORD Height, WORD XPos, WORD YPos, WORD Color, BYTE *str, BYTE Option);
typedef BOOL (__cdecl *_MC_TxtToXMPXFile )(WORD mDevID, WORD PicFIndex, WORD Width, WORD Height, WORD Color, BYTE *Str, BYTE Encode, BYTE Mode);
typedef BOOL (__cdecl *_MC_ShowXMPXPic   )(WORD mDevID, WORD Left, WORD Top, WORD Width, WORD Height, BYTE *PicBuff, DWORD PicLength);

typedef BOOL (__cdecl *_MC_InitForPackage)(WORD mDevID, BOOL bNet);
typedef int  (__cdecl *_MC_GetPackage    )(WORD mDevID, BYTE *Data, int *AnswerCount);
typedef BOOL (__cdecl *_MC_CheckAnswer   )(WORD mDevID, BYTE *Data, int *AnswerCount);

extern _MC_ComInitial        MC_ComInitial;
extern _MC_NetInitial        MC_NetInitial;
extern _MC_Close             MC_Close;
extern _MC_Reset             MC_Reset;
extern _MC_SetLEDNum         MC_SetLEDNum;
extern _MC_SetRemoteIP       MC_SetRemoteIP;
extern _MC_ControlPlay       MC_ControlPlay;
extern _MC_SetBright         MC_SetBright;
extern _MC_SetPowerMode      MC_SetPowerMode;
extern _MC_SetAutoPower      MC_SetAutoPower;
extern _MC_SendBrightTable   MC_SendBrightTable;
extern _MC_SetDispParams     MC_SetDispParams;
extern _MC_SetClock          MC_SetClock;
extern _MC_GetClock          MC_GetClock;
extern _MC_GetRunTimeInfo    MC_GetRunTimeInfo;
extern _MC_ChangeGroup       MC_ChangeGroup;

extern _MC_SendProgList      MC_SendProgList;
extern _MC_SendXMPXPic       MC_SendXMPXPic;
extern _MC_GetXMPXPic        MC_GetXMPXPic;
extern _MC_SendText          MC_SendText;
extern _MC_SendRTView        MC_SendRTView;
extern _MC_GetRTViewPkt      MC_GetRTViewPkt;
extern _MC_SendFontInfo      MC_SendFontInfo;
extern _MC_SendFontLibPkt    MC_SendFontLibPkt;
extern _MC_ShowString        MC_ShowString;
extern _MC_TxtToXMPXFile     MC_TxtToXMPXFile;
extern _MC_ShowXMPXPic       MC_ShowXMPXPic;

extern _MC_InitForPackage    MC_InitForPackage;
extern _MC_GetPackage        MC_GetPackage;
extern _MC_CheckAnswer       MC_CheckAnswer;

extern HINSTANCE             hMC_DLL;

extern BOOL LoadMiniLEDdll( void );
extern void FreeMiniLEDdll( void );

#endif /* MiniLEDH */

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值