using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.InteropServices;
using System.Windows.Forms;
using System.Drawing;
public class LedHelper
{
public LedHelper(RichTextBox rbError, params string[] arr)
{
rchMessage = rbError;
try
{
this.controlType = Convert.ToInt32(arr[0], 16);
this.SCREEN_NO = Convert.ToInt32(arr[1]);
this.SCREEN_SOCKETIP = arr[2];
this.SCREEN_WIDTH = Convert.ToInt32(arr[3]);
this.SCREEN_HEIGHT = Convert.ToInt32(arr[4]);
}
catch
{
}
}
#region
public delegate void CallBack(string szMessagge, int nProgress);
private CallBack callBack;
[DllImport("BX_IV.dll")]
public static extern int Initialize(IntPtr DLLApp, CallBack pCallBack);
[DllImport("BX_IV.dll")]
public static extern int Uninitialize();
[DllImport("BX_IV.dll")]
public static extern int AddScreen(int nControlType, int nScreenNo, int nSendMode, int nWidth, int nHeight,
int nScreenType, int nPixelMode, int nDataDA, int nDataOE, int nRowOrder, int DataFlow, int nFreqPar,
string pCom, int nBaud, string pSocketIP, int nSocketPort, int nStaticIPMode, int nServerMode, string pBarcode,
string pNetworkID, string pServerIP, int nServerPort, string pServerAccessUser, string pServerAccessPassword, string pWiFiIP,
int nWiFiPort, string pGprsIP, int nGprsPort, string pGprsID, string pScreenStatusFile);
[DllImport("BX_IV.dll")]
public static extern int DeleteScreen(int nScreenNo);
[DllImport("BX_IV.dll")]
public static extern int SendScreenInfo(int nScreenNo, int nSendCmd, int nOtherParam1);
[DllImport("BX_IV.dll")]
public static extern int AddScreenProgram(int nScreenNo, int nProgramType, int nPlayLength,
int nStartYear, int nStartMonth, int nStartDay, int nEndYear, int nEndMonth, int nEndDay,
int nMonPlay, int nTuesPlay, int nWedPlay, int nThursPlay, int bFriPlay, int nSatPlay, int nSunPlay,
int nStartHour, int nStartMinute, int nEndHour, int nEndMinute);
[DllImport("BX_IV.dll")]
public static extern int DeleteScreenProgram(int nScreenNo, int nProgramOrd);
[DllImport("BX_IV.dll")]
public static extern int DeleteScreenProgramArea(int nScreenNo, int nProgramOrd, int nAreaOrd);
[DllImport("BX_IV.dll")]
public static extern int AddScreenProgramBmpTextArea(int nScreenNo, int nProgramOrd, int nX, int nY,
int nWidth, int nHeight);
[DllImport("BX_IV.dll")]
public static extern int AddScreenProgramAreaBmpTextFile(int nScreenNo, int nProgramOrd, int nAreaOrd,
string pFileName, int nShowSingle, string pFontName, int nFontSize, int nBold, int nFontColor,
int nStunt, int nRunSpeed, int nShowTime);
[DllImport("BX_IV.dll")]
public static extern int AddScreenProgramAreaBmpTextText(int nScreenNo, int nProgramOrd, int nAreaOrd,
string pText, int nShowSingle, int nHorAlign, int VerAlign, string pFontName, int nFontSize, int nBold, int nItalic, int Underline, int nFontColor,
int nStunt, int nRunSpeed, int nShowTime, int nStretch, int nShift);
[DllImport("BX_IV.dll")]
public static extern int DeleteScreenProgramAreaBmpTextFile(int nScreenNo, int nProgramOrd, int nAreaOrd, int nFileOrd);
[DllImport("BX_IV.dll")]
public static extern int QuerryServerDeviceList(int nScreenNo, int nSendMode, byte[] pDeviceList, ref int nDeviceCount);
[DllImport("BX_IV.dll")]
public static extern int BindServerDevice(int nScreenNo, string pBarcode, string pNetworkId);
private const int RETURN_ERROR_AERETYPE = 0xF7;
private const int RETURN_ERROR_RA_SCREENNO = 0xF8;
private const int RETURN_ERROR_NOFIND_AREAFILE = 0xF9;
private const int RETURN_ERROR_NOFIND_AREA = 0xFA;
private const int RETURN_ERROR_NOFIND_PROGRAM = 0xFB;
private const int RETURN_ERROR_NOFIND_SCREENNO = 0xFC;
private const int RETURN_ERROR_NOW_SENDING = 0xFD;
private const int RETURN_ERROR_NOSUPPORT_USB = 0xF6;
private const int RETURN_ERROR_NO_USB_DISK = 0xF5;
private const int RETURN_ERROR_OTHER = 0xFF;
private const int RETURN_NOERROR = 0;
[DllImport("BX_IV.dll")]
public static extern int SetScreenAdjustLight(int nScreenNo, int nAdjustType, int nHandleLight,
int nHour1, int nMinute1, int nLight1,
int nHour2, int nMinute2, int nLight2,
int nHour3, int nMinute3, int nLight3,
int nHour4, int nMinute4, int nLight4);
[DllImport("BX_IV.dll")]
public static extern int SetScreenTimerPowerONOFF(int nScreenNo,
int nOnHour1, int nOnMinute1, int nOffHour1, int nOffMinute1,
int nOnHour2, int nOnMinute2, int nOffHour2, int nOffMinute2,
int nOnHour3, int nOnMinute3, int nOffHour3, int nOffMinute3);
[DllImport("BX_IV.dll")]
public static extern int AddScreenProgramTimeArea(int nScreenNo,
int nProgramOrd, int nX, int nY, int nWidth, int nHeight);
[DllImport("BX_IV.dll")]
public static extern int AddScreenProgramTimeAreaFile(int nScreenNo, int nProgramOrd, int nAreaOrd,
string pInputtxt, string pFontName,
int nSingal, int nAlign, int nFontSize, int nBold, int nItalic, int nUnderline,
int nUsetxt, int nTxtcolor,
int nUseymd, int nYmdstyle, int nYmdcolor,
int nUseweek, int nWeekstyle, int nWeekcolor,
int nUsehns, int nHnsstyle, int nHnscolor, int nAutoset);
[DllImport("BX_IV.dll")]
public static extern int AddScreenProgramLunarArea(int nScreenNo, int nProgramOrd,
int nX, int nY, int nWidth, int nHeight);
[DllImport("BX_IV.dll")]
public static extern int AddScreenProgramLunarAreaFile(int nScreenNo, int nProgramOrd, int nAreaOrd,
string pInputtxt, string pFontName,
int nSingal, int nAlign, int nFontSize, int nBold, int nItalic, int nUnderline,
int nUsetxt, int nTxtcolor, int nUseyear, int nYearcolor, int nUsemonth, int nMonthcolor,
int nUsesolar, int nSolarcolor, int nAutoset);
[DllImport("BX_IV.dll")]
public static extern int AddScreenProgramClockArea(int nScreenNo, int nProgramOrd,
int nX, int nY, int nWidth, int nHeight);
[DllImport("BX_IV.dll")]
public static extern int AddScreenProgramClockAreaFile(int nScreenNo, int nProgramOrd, int nAreaOrd,
int nusetxt, int nusetime, int nuseweek, int ntimeStyle, int nWeekStyle,
int ntxtfontsize, int ntxtfontcolor, int ntxtbold, int ntxtitalic, int ntxtunderline, int txtleft, int txttop,
int ntimefontsize, int ntimefontcolor, int ntimebold, int ntimeitalic, int ntimeunderline, int timeleft, int timetop,
int nweekfontsize, int nweekfontcolor, int nweekbold, int nweekitalic, int nweekunderline, int weekleft, int weektop,
int nclockfontsize, int nclockfontcolor, int nclockbold, int nclockitalic, int nclockunderline,
int clockcentersize, int clockcentercolor, int mhrdotstyle, int mhrdotsize, int mhrdotcolor,
int hrdotstyle, int hrdotsize, int hrdotcolor, int mindotstyle, int mindotsize, int mindotcolor,
int hrhandsize, int hrhandcolor, int minhandsize, int minhandcolor, int sechandsize, int sechandcolor, int nAutoset,
string btxtcontent, string btxtfontname, string btimefontname, string bweekfontname, string bclockfontname);
[DllImport("BX_IV.dll")]
public static extern int AddScreenProgramChroArea(int nScreenNo, int nProgramOrd, int nX, int nY, int nWidth, int nHeight);
[DllImport("BX_IV.dll")]
public static extern int AddScreenProgramChroAreaFile(int nScreenNo, int nProgramOrd, int nAreaOrd,
string pInputtxt, string pDaystr, string pHourstr, string pMinstr, string pSecstr, string pFontName,
int nSingal, int nAlign, int nFontSize, int nBold, int nItalic, int nUnderline,
int nTxtcolor, int nFontcolor,
int nShowstr, int nShowAdd, int nUseTxt, int nUseDay, int nUseHour, int nUseMin, int nUseSec,
int nDayLength, int nHourLength, int nMinLength, int nSecLength,
int EndYear, int EndMonth, int EndDay, int EndHour, int EndMin, int EndSec,
int nAutoset);
[DllImport("BX_IV.dll")]
public static extern int AddScreenProgramTemperatureArea(int nScreenNo, int nProgramOrd,
int nX, int nY, int nWidth, int nHeight,
int nSensorType,
int nTemperatureUnit,
int nTemperatureMode,
int nTemperatureUnitScale,
int nTemperatureValueWidth,
int nTemperatureCorrectionPol,
int nTemperatureCondition,
int nTemperatureThreshPol,
int nTemperatureThresh,
int nTemperatureColor,
int nTemperatureErrColor,
string pStaticText,
string pStaticFont,
int nStaticSize,
int intnStaticColor,
int nStaticBold);
[DllImport("BX_IV.dll")]
public static extern int AddScreenProgramHumidityArea(int nScreenNo, int nProgramOrd,
int nX, int nY, int nWidth, int nHeight,
int nSensorType,
int nHumidityUnit,
int nHumidityMode,
int nHumidityUnitScale,
int nHumidityValueWidth,
int nHumidityConditionPol,
int nHumidityCondition,
int nHumidityThreshPol,
int nHumidityThresh,
int nHumidityColor,
int nHumidityErrColor,
string pStaticText,
string pStaticFont,
int nStaticSize,
int nStaticColor,
int nStaticBold);
[DllImport("BX_IV.dll")]
public static extern int AddScreenProgramNoiseArea(int nScreenNo, int nProgramOrd,
int nX, int nY, int nWidth, int nHeight,
int nSensorType,
int nNoiseUnit,
int nNoiseMode,
int nNoiseUnitScale,
int nNoiseValueWidth,
int nNoiseConditionPol,
int nNoiseCondition,
int nNoiseThreshPol,
int nNoiseThresh,
int nNoiseColor,
int nNoiseErrColor,
string pStaticText,
string pStaticFont,
int nStaticSize,
int nStaticColor,
int nStaticBold);
[DllImport("BX_IV.dll")]
public static extern int GetScreenStatus(int nScreenNo, int nSendMode);
[DllImport("BX_IV.dll")]
public static extern int SaveUSBScreenInfo(int nScreenNo, int bCorrectTime, int nAdvanceHour, int nAdvanceMinute, string pUSBDisk);
[DllImport("BX_IV.dll")]
public static extern int StartServer(int nSendMode, string pServerIP, int nServerPort);
[DllImport("BX_IV.dll")]
public static extern int StopServer(int nSendMode);
private const int BX_5AT = 0x0051;
private const int BX_5A0 = 0x0151;
private const int BX_5A1 = 0x0251;
private const int BX_5A2 = 0x0351;
private const int BX_5A3 = 0x0451;
private const int BX_5A4 = 0x0551;
private const int BX_5A1_WIFI = 0x0651;
private const int BX_5A2_WIFI = 0x0751;
private const int BX_5A4_WIFI = 0x0851;
private const int BX_5A = 0x0951;
private const int BX_5A2_RF = 0x1351;
private const int BX_5A4_RF = 0x1551;
private const int BX_5AT_WIFI = 0x1651;
private const int BX_5AL = 0x1851;
private const int AX_AT = 0x2051;
private const int AX_A0 = 0x2151;
private const int BX_5MT = 0x0552;
private const int BX_5M1 = 0x0052;
private const int BX_5M1X = 0x0152;
private const int BX_5M2 = 0x0252;
private const int BX_5M3 = 0x0352;
private const int BX_5M4 = 0x0452;
private const int BX_5E1 = 0x0154;
private const int BX_5E2 = 0x0254;
private const int BX_5E3 = 0x0354;
private const int BX_5UT = 0x0055;
private const int BX_5U0 = 0x0155;
private const int BX_5U1 = 0x0255;
private const int BX_5U2 = 0x0355;
private const int BX_5U3 = 0x0455;
private const int BX_5U4 = 0x0555;
private const int BX_5U5 = 0x0655;
private const int BX_5U = 0x0755;
private const int BX_5UL = 0x0855;
private const int AX_UL = 0x2055;
private const int AX_UT = 0x2155;
private const int AX_U0 = 0x2255;
private const int AX_U1 = 0x2355;
private const int AX_U2 = 0x2455;
private const int BX_5Q0 = 0x0056;
private const int BX_5Q1 = 0x0156;
private const int BX_5Q2 = 0x0256;
private const int BX_5Q0P = 0x1056;
private const int BX_5Q1P = 0x1156;
private const int BX_5Q2P = 0x1256;
private const int BX_5QL = 0x1356;
private const int BX_5QS1 = 0x0157;
private const int BX_5QS2 = 0x0257;
private const int BX_5QS = 0x0357;
private const int BX_5QS1P = 0x1157;
private const int BX_5QS2P = 0x1257;
private const int BX_5QSP = 0x1357;
int controlType = BX_5M4;
private const int SEND_MODE_COMM = 0;
private const int SEND_MODE_GPRS = 1;
private const int SEND_MODE_NET = 2;
private const int SEND_MODE_WIFI = 4;
private const int SEND_MODE_SERVER_2G = 5;
private const int SEND_MODE_SERVER_3G = 6;
private const int SEND_CMD_PARAMETER = 41471;
private const int SEND_CMD_SENDALLPROGRAM = 41456;
private const int SEND_CMD_POWERON = 41727;
private const int SEND_CMD_POWEROFF = 41726;
private const int SEND_CMD_TIMERPOWERONOFF = 41725;
private const int SEND_CMD_CANCEL_TIMERPOWERONOFF = 41724;
private const int SEND_CMD_RESIVETIME = 41723;
private const int SEND_CMD_ADJUSTLIGHT = 41722;
private int SCREEN_NO = 3;
private int SCREEN_WIDTH = 256;
private int SCREEN_HEIGHT = 160;
private int SCREEN_TYPE = 1;
private int SCREEN_DATADA = 0;
private int SCREEN_DATAOE = 0;
private string SCREEN_COMM = "COM1";
private int SCREEN_BAUD = 57600;
private int SCREEN_ROWORDER = 0;
private const int SCREEN_DATAFLOW = 0;
private int SCREEN_FREQPAR = 0;
public string SCREEN_SOCKETIP = "172.16.1.239";
private int SCREEN_SOCKETPORT = 5007;
private int SCREEN_SERVERMODE = 0;
private string SCREEN_NETWORKID = "";
private string SCREEN_BARCODE = "";
private string SCREEN_SERVERIP = "112.65.245.174";
private int SCREEN_SERVERPORT = 6055;
private string SCREEN_SERVERACCESSUSER = "chenm";
private string SCREEN_SERVERACCESSPASSWORD = "chenmin";
private string SCREEN_WIFIIP = "192.168.100.1";
private int SCREEN_WIFIPORT = 5005;
private bool m_bSendBusy = false;
private int g_nSendMode = SEND_MODE_NET;
#endregion
#region 变量
RichTextBox rchMessage = new RichTextBox();
#endregion
public void GetErrorMessage(string szfunctionName, int nResult)
{
string szResult;
DateTime dt = DateTime.Now;
szResult = dt.ToString() + "---执行函数:" + szfunctionName + "---返回结果:";
switch (nResult)
{
case RETURN_ERROR_AERETYPE:
rchMessage.Text += szResult + "区域类型错误,在添加、删除图文区域文件时区域类型出错返回此类型错误。\r\n";
break;
case RETURN_ERROR_RA_SCREENNO:
rchMessage.Text += szResult + "已经有该显示屏信息。如要重新设定请先DeleteScreen删除该显示屏再添加\r\n";
break;
case RETURN_ERROR_NOFIND_AREAFILE:
rchMessage.Text += szResult + "没有找到有效的区域文件(图文区域)\r\n";
break;
case RETURN_ERROR_NOFIND_AREA:
rchMessage.Text += szResult + "没有找到有效的显示区域可以使用AddScreenProgramBmpTextArea添加区域信息。\r\n";
break;
case RETURN_ERROR_NOFIND_PROGRAM:
rchMessage.Text += szResult + "没有找到有效的显示屏节目可以使用AddScreenProgram函数添加指定节目\r\n";
break;
case RETURN_ERROR_NOFIND_SCREENNO:
rchMessage.Text += szResult + "系统内没有查找到该显示屏可以使用AddScreen函数添加显示屏\r\n";
break;
case RETURN_ERROR_NOW_SENDING:
rchMessage.Text += szResult + "系统内正在向该显示屏通讯,请稍后再通讯\r\n";
break;
case RETURN_ERROR_NOSUPPORT_USB:
rchMessage.Text += szResult + "不支持USB模式\r\n";
break;
case RETURN_ERROR_NO_USB_DISK:
rchMessage.Text += szResult + "找不到usb设备路径;\r\n";
break;
case RETURN_ERROR_OTHER:
rchMessage.Text += szResult + "其它错误\r\n";
break;
case RETURN_NOERROR:
rchMessage.Text += szResult + "函数执行/通讯成功\r\n";
break;
case 0x01:
rchMessage.Text += szResult + "通讯错误\r\n";
break;
case 0x02:
rchMessage.Text += szResult + "通讯错误\r\n";
break;
case 0x03:
rchMessage.Text += szResult + "通讯错误\r\n";
break;
case 0x04:
rchMessage.Text += szResult + "通讯错误\r\n";
break;
case 0x05:
rchMessage.Text += szResult + "通讯错误\r\n";
break;
case 0x06:
rchMessage.Text += szResult + "通讯错误\r\n";
break;
case 0x07:
rchMessage.Text += szResult + "通讯错误\r\n";
break;
case 0x08:
rchMessage.Text += szResult + "通讯错误\r\n";
break;
case 0x09:
rchMessage.Text += szResult + "通讯错误\r\n";
break;
case 0x0A:
rchMessage.Text += szResult + "通讯错误\r\n";
break;
case 0x0B:
rchMessage.Text += szResult + "通讯错误\r\n";
break;
case 0x0C:
rchMessage.Text += szResult + "通讯错误\r\n";
break;
case 0x0D:
rchMessage.Text += szResult + "通讯错误\r\n";
break;
case 0x0E:
rchMessage.Text += szResult + "通讯错误\r\n";
break;
case 0x0F:
rchMessage.Text += szResult + "通讯错误\r\n";
break;
case 0x10:
rchMessage.Text += szResult + "通讯错误\r\n";
break;
case 0x11:
rchMessage.Text += szResult + "通讯错误\r\n";
break;
case 0x12:
rchMessage.Text += szResult + "通讯错误\r\n";
break;
case 0x13:
rchMessage.Text += szResult + "通讯错误\r\n";
break;
case 0x14:
rchMessage.Text += szResult + "通讯错误\r\n";
break;
case 0x15:
rchMessage.Text += szResult + "通讯错误\r\n";
break;
case 0x16:
rchMessage.Text += szResult + "通讯错误\r\n";
break;
case 0x17:
rchMessage.Text += szResult + "通讯错误\r\n";
break;
case 0x18:
rchMessage.Text += szResult + "通讯错误\r\n";
break;
case 0xFE:
rchMessage.Text += szResult + "通讯错误\r\n";
break;
}
}
public int InitDLL(IntPtr handle)
{
int nResult = Initialize(handle, callBack);
GetErrorMessage("Initialize", nResult);
return nResult;
}
public static int DisposeDLL()
{
int nResult = Uninitialize();
return nResult;
}
public void AddScream()
{
string Barcode = "";
string NetworkID = "";
int nScreenType = 1;
int nStaticIPMode = 0;
int nServerMode = 0;
Barcode = "";
NetworkID = "BX-NET000001";
try
{
int result = AddScreen(
controlType,
SCREEN_NO,
g_nSendMode,
SCREEN_WIDTH,
SCREEN_HEIGHT,
nScreenType,
1,
SCREEN_DATADA,
SCREEN_DATAOE,
SCREEN_ROWORDER,
SCREEN_DATAFLOW,
SCREEN_FREQPAR,
SCREEN_COMM,
SCREEN_BAUD,
SCREEN_SOCKETIP,
SCREEN_WIFIPORT,
nStaticIPMode,
nServerMode,
Barcode,
NetworkID,
"",
5005,
"",
"",
SCREEN_WIFIIP,
SCREEN_WIFIPORT,
"",
8120,
"",
"D:\\ScreenStatus.ini");
GetErrorMessage("AddScreen", result);
}
catch (Exception E)
{
MessageBox.Show(E.Message);
}
}
public void AddScreamProgram()
{
int rusult = AddScreenProgram(SCREEN_NO, 0, 0, 65535, 11, 26, 2011, 11, 26, 1, 1, 1, 1, 1, 1, 1, 0, 0, 23, 59);
GetErrorMessage("AddScreenProgram", rusult);
}
public void DeleteScreenProgram(int programNo)
{
int result = DeleteScreenProgram(SCREEN_NO, programNo);
GetErrorMessage("DeleteScreenProgram", result);
}
public void DeleteScreenProgramArea(int programNo, int areaNo)
{
int nResult;
nResult = DeleteScreenProgramArea(SCREEN_NO, programNo, areaNo);
GetErrorMessage("DeleteScreenProgramArea", nResult);
}
public void AddScreenProgramBmpTextArea(int programNo, Rectangle rc)
{
int result = AddScreenProgramBmpTextArea(SCREEN_NO, programNo, rc.X, rc.Y, rc.Width, rc.Height);
GetErrorMessage("AddScreenProgramBmpTextArea", result);
}
public void AddScreenProgramAreaBmpTextText(int programNo, int areaNo, string textContent, int fontSize, int showStyle)
{
int result = AddScreenProgramAreaBmpTextText(
SCREEN_NO,
programNo,
areaNo,
textContent,
0,
0,
0,
"宋体",
fontSize,
0,
0,
0,
255,
showStyle,
10,
13,
0,
0);
GetErrorMessage("AddScreenProgramAreaBmpTextFile", result);
}
public void AddScreenProgramAreaBmpTextFile(int programNo, int areaNo, string fileName, int fontSize)
{
int result = AddScreenProgramAreaBmpTextFile(SCREEN_NO, programNo,
areaNo, fileName, 1, "宋体", fontSize, 0, 255, 1, 10, 10);
GetErrorMessage("AddScreenProgramAreaBmpTextFile", result);
}
public void SendScreenInfo()
{
try
{
if (m_bSendBusy == false)
{
m_bSendBusy = true;
int nResult;
nResult = SendScreenInfo(SCREEN_NO, SEND_CMD_SENDALLPROGRAM, 0);
GetErrorMessage("SendScreenInfo", nResult);
m_bSendBusy = false;
}
else
{
MessageBox.Show("已经在发送中...");
}
}
catch (Exception x)
{
MessageBox.Show(x.Message);
}
}
public void OpenScreen()
{
if (m_bSendBusy == false)
{
m_bSendBusy = true;
int nResult;
nResult = SendScreenInfo(SCREEN_NO, SEND_CMD_POWERON, 0);
GetErrorMessage("SendScreenInfo", nResult);
m_bSendBusy = false;
}
}
public void CloseScreen()
{
try
{
if (m_bSendBusy == false)
{
m_bSendBusy = true;
int nResult;
nResult = SendScreenInfo(SCREEN_NO, SEND_CMD_POWEROFF, 0);
GetErrorMessage("SendScreenInfo", nResult);
m_bSendBusy = false;
}
}
catch
{
}
}
}
