You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
270 lines
16 KiB
270 lines
16 KiB
using System;
|
|
using System.Collections.Generic;
|
|
using System.Runtime.InteropServices;
|
|
using System.Text;
|
|
|
|
namespace SSWMS.Server
|
|
{
|
|
public class LED
|
|
{
|
|
private static readonly Dictionary<string, LED_MAIN> dLed = new Dictionary<string, LED_MAIN>()
|
|
{
|
|
{ "120003", new LED_MAIN() { LED_IP = Encoding.GetEncoding("GBK").GetBytes("10.241.121.42"), LED_TEXT_DEFAULT_2 = "1 巷道左" } },
|
|
{ "120008", new LED_MAIN() { LED_IP = Encoding.GetEncoding("GBK").GetBytes("10.241.121.47"), LED_TEXT_DEFAULT_2 = "1 巷道右" } },
|
|
{ "120103", new LED_MAIN() { LED_IP = Encoding.GetEncoding("GBK").GetBytes("10.241.121.55"), LED_TEXT_DEFAULT_2 = "2 巷道左" } },
|
|
{ "120108", new LED_MAIN() { LED_IP = Encoding.GetEncoding("GBK").GetBytes("10.241.121.39"), LED_TEXT_DEFAULT_2 = "2 巷道右" } },
|
|
{ "120203", new LED_MAIN() { LED_IP = Encoding.GetEncoding("GBK").GetBytes("10.241.121.29"), LED_TEXT_DEFAULT_2 = "3 巷道左" } },
|
|
{ "120208", new LED_MAIN() { LED_IP = Encoding.GetEncoding("GBK").GetBytes("10.241.121.49"), LED_TEXT_DEFAULT_2 = "3 巷道右" } },
|
|
{ "120303", new LED_MAIN() { LED_IP = Encoding.GetEncoding("GBK").GetBytes("10.241.121.33"), LED_TEXT_DEFAULT_2 = "4 巷道左" } },
|
|
{ "120308", new LED_MAIN() { LED_IP = Encoding.GetEncoding("GBK").GetBytes("10.241.121.35"), LED_TEXT_DEFAULT_2 = "4 巷道右" } },
|
|
{ "120403", new LED_MAIN() { LED_IP = Encoding.GetEncoding("GBK").GetBytes("10.241.121.51"), LED_TEXT_DEFAULT_2 = "5 巷道左" } },
|
|
{ "120408", new LED_MAIN() { LED_IP = Encoding.GetEncoding("GBK").GetBytes("10.241.121.36"), LED_TEXT_DEFAULT_2 = "5 巷道右" } },
|
|
{ "120503", new LED_MAIN() { LED_IP = Encoding.GetEncoding("GBK").GetBytes("10.241.121.62"), LED_TEXT_DEFAULT_2 = "6 巷道左" } },
|
|
{ "120508", new LED_MAIN() { LED_IP = Encoding.GetEncoding("GBK").GetBytes("10.241.121.57"), LED_TEXT_DEFAULT_2 = "6 巷道右" } },
|
|
{ "120603", new LED_MAIN() { LED_IP = Encoding.GetEncoding("GBK").GetBytes("10.241.121.37"), LED_TEXT_DEFAULT_2 = "7 巷道左" } },
|
|
{ "120608", new LED_MAIN() { LED_IP = Encoding.GetEncoding("GBK").GetBytes("10.241.121.32"), LED_TEXT_DEFAULT_2 = "7 巷道右" } },
|
|
{ "120703", new LED_MAIN() { LED_IP = Encoding.GetEncoding("GBK").GetBytes("10.241.121.60"), LED_TEXT_DEFAULT_2 = "8 巷道左" } },
|
|
{ "120708", new LED_MAIN() { LED_IP = Encoding.GetEncoding("GBK").GetBytes("10.241.121.63"), LED_TEXT_DEFAULT_2 = "8 巷道右" } },
|
|
{ "120803", new LED_MAIN() { LED_IP = Encoding.GetEncoding("GBK").GetBytes("10.241.121.41"), LED_TEXT_DEFAULT_2 = "9 巷道左" } },
|
|
{ "120808", new LED_MAIN() { LED_IP = Encoding.GetEncoding("GBK").GetBytes("10.241.121.34"), LED_TEXT_DEFAULT_2 = "9 巷道右" } },
|
|
{ "120903", new LED_MAIN() { LED_IP = Encoding.GetEncoding("GBK").GetBytes("10.241.121.43"), LED_TEXT_DEFAULT_2 = "10 巷道左" } },
|
|
{ "120908", new LED_MAIN() { LED_IP = Encoding.GetEncoding("GBK").GetBytes("10.241.121.46"), LED_TEXT_DEFAULT_2 = "10 巷道右" } },
|
|
{ "121003", new LED_MAIN() { LED_IP = Encoding.GetEncoding("GBK").GetBytes("10.241.121.45"), LED_TEXT_DEFAULT_2 = "11 巷道左" } },
|
|
{ "121008", new LED_MAIN() { LED_IP = Encoding.GetEncoding("GBK").GetBytes("10.241.121.53"), LED_TEXT_DEFAULT_2 = "11 巷道右" } },
|
|
{ "121103", new LED_MAIN() { LED_IP = Encoding.GetEncoding("GBK").GetBytes("10.241.121.28"), LED_TEXT_DEFAULT_2 = "12 巷道左" } },
|
|
{ "121108", new LED_MAIN() { LED_IP = Encoding.GetEncoding("GBK").GetBytes("10.241.121.30"), LED_TEXT_DEFAULT_2 = "12 巷道右" } },
|
|
{ "121311", new LED_MAIN() { LED_IP = Encoding.GetEncoding("GBK").GetBytes("10.241.121.59"), LED_TEXT_DEFAULT_2 = "14 巷道左" } },
|
|
{ "121312", new LED_MAIN() { LED_IP = Encoding.GetEncoding("GBK").GetBytes("10.241.121.58"), LED_TEXT_DEFAULT_2 = "14 巷道右" } },
|
|
{ "121411", new LED_MAIN() { LED_IP = Encoding.GetEncoding("GBK").GetBytes("10.241.121.48"), LED_TEXT_DEFAULT_2 = "15 巷道左" } },
|
|
{ "121412", new LED_MAIN() { LED_IP = Encoding.GetEncoding("GBK").GetBytes("10.241.121.31"), LED_TEXT_DEFAULT_2 = "15 巷道右" } },
|
|
{ "121511", new LED_MAIN() { LED_IP = Encoding.GetEncoding("GBK").GetBytes("10.241.121.64"), LED_TEXT_DEFAULT_2 = "16 巷道左" } },
|
|
{ "121512", new LED_MAIN() { LED_IP = Encoding.GetEncoding("GBK").GetBytes("10.241.121.65"), LED_TEXT_DEFAULT_2 = "16 巷道右" } },
|
|
{ "121809", new LED_MAIN() { LED_IP = Encoding.GetEncoding("GBK").GetBytes("10.241.121.52"), LED_TEXT_DEFAULT_2 = "18 巷道左" } },
|
|
{ "121811", new LED_MAIN() { LED_IP = Encoding.GetEncoding("GBK").GetBytes("10.241.121.50"), LED_TEXT_DEFAULT_2 = "18 巷道右" } },
|
|
{ "126901", new LED_MAIN() { LED_IP = Encoding.GetEncoding("GBK").GetBytes("10.241.121.38"), LED_TEXT_DEFAULT_2 = "平库左" } },
|
|
{ "127001", new LED_MAIN() { LED_IP = Encoding.GetEncoding("GBK").GetBytes("10.241.121.54"), LED_TEXT_DEFAULT_2 = "平库右" } },
|
|
{ "126501", new LED_MAIN() { LED_IP = Encoding.GetEncoding("GBK").GetBytes("10.241.121.56"), LED_TEXT_DEFAULT_2 = "制毡区 126501" } },
|
|
{ "126601", new LED_MAIN() { LED_IP = Encoding.GetEncoding("GBK").GetBytes("10.241.121.40"), LED_TEXT_DEFAULT_2 = "制毡区 126601" } },
|
|
{ "126701", new LED_MAIN() { LED_IP = Encoding.GetEncoding("GBK").GetBytes("10.241.121.44"), LED_TEXT_DEFAULT_2 = "制毡区 126701" } },
|
|
{ "126801", new LED_MAIN() { LED_IP = Encoding.GetEncoding("GBK").GetBytes("10.241.121.61"), LED_TEXT_DEFAULT_2 = "制毡区 126801" } },
|
|
};
|
|
|
|
private static bxdualsdk.DynamicAreaParams[] areaParams;
|
|
|
|
public static void InitSdk()
|
|
{
|
|
bxdualsdk.bxDual_InitSdk();
|
|
areaParams = new bxdualsdk.DynamicAreaParams[4];
|
|
areaParams[0].uAreaId = 0;
|
|
areaParams[0].oAreaHeader_G6 = new bxdualsdk.EQareaHeader_G6()
|
|
{
|
|
AreaX = 8,
|
|
AreaY = 0,
|
|
AreaWidth = 240,
|
|
AreaHeight = 24,
|
|
};
|
|
areaParams[0].stPageHeader = new bxdualsdk.EQpageHeader_G6()
|
|
{
|
|
DisplayMode = 0x2,
|
|
ClearMode = 0x1,
|
|
Speed = 40,
|
|
StayTime = 300,
|
|
RepeatTime = 1,
|
|
fontSize = 18,
|
|
color = (uint)0x01
|
|
};
|
|
byte[] Font = Encoding.GetEncoding("GBK").GetBytes("宋体\0");
|
|
areaParams[0].fontName = Marshal.AllocHGlobal(Font.Length);
|
|
Marshal.Copy(Font, 0, areaParams[0].fontName, Font.Length);
|
|
areaParams[1].uAreaId = 1;
|
|
areaParams[1].oAreaHeader_G6 = new bxdualsdk.EQareaHeader_G6()
|
|
{
|
|
AreaX = 8,
|
|
AreaY = 24,
|
|
AreaWidth = 240,
|
|
AreaHeight = 24,
|
|
};
|
|
areaParams[1].stPageHeader = areaParams[0].stPageHeader;
|
|
areaParams[1].fontName = Marshal.AllocHGlobal(Font.Length);
|
|
Marshal.Copy(Font, 0, areaParams[1].fontName, Font.Length);
|
|
areaParams[2].uAreaId = 2;
|
|
areaParams[2].oAreaHeader_G6 = new bxdualsdk.EQareaHeader_G6()
|
|
{
|
|
AreaX = 8,
|
|
AreaY = 48,
|
|
AreaWidth = 240,
|
|
AreaHeight = 24,
|
|
};
|
|
areaParams[2].stPageHeader = areaParams[0].stPageHeader;
|
|
areaParams[2].fontName = Marshal.AllocHGlobal(Font.Length);
|
|
Marshal.Copy(Font, 0, areaParams[2].fontName, Font.Length);
|
|
areaParams[3].uAreaId = 3;
|
|
areaParams[3].oAreaHeader_G6 = new bxdualsdk.EQareaHeader_G6()
|
|
{
|
|
AreaX = 8,
|
|
AreaY = 72,
|
|
AreaWidth = 240,
|
|
AreaHeight = 24,
|
|
};
|
|
areaParams[3].stPageHeader = areaParams[0].stPageHeader;
|
|
areaParams[3].fontName = Marshal.AllocHGlobal(Font.Length);
|
|
Marshal.Copy(Font, 0, areaParams[3].fontName, Font.Length);
|
|
}
|
|
|
|
public static void ReleaseSdk()
|
|
{
|
|
bxdualsdk.bxDual_ReleaseSdk();
|
|
}
|
|
|
|
public static void Update(string sDeviceCode, string sText2, string sText3, string sText4)
|
|
{
|
|
if (S_ControlService.dScanBack.ContainsKey(sDeviceCode))
|
|
{
|
|
sDeviceCode = S_ControlService.dScanBack[sDeviceCode];
|
|
}
|
|
if (dLed.TryGetValue(sDeviceCode, out LED_MAIN led))
|
|
{
|
|
led.LED_TEXT_UPDATE_1 = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
|
|
led.LED_TEXT_UPDATE_2 = sText2;
|
|
led.LED_TEXT_UPDATE_3 = sText3;
|
|
led.LED_TEXT_UPDATE_4 = sText4;
|
|
led.LED_TIME = DateTime.Now;
|
|
}
|
|
}
|
|
|
|
public static bool LEDTask(out string sResult)
|
|
{
|
|
sResult = string.Empty;
|
|
try
|
|
{
|
|
DateTime dtExpired = DateTime.Now.AddMinutes(-5);
|
|
string sNow = DateTime.Now.ToString("yyyy-MM-dd");
|
|
foreach (LED_MAIN led in dLed.Values)
|
|
{
|
|
if (led.LED_TIME != null && dtExpired < led.LED_TIME)
|
|
{
|
|
if (led.LED_TEXT_NOW_1 != led.LED_TEXT_UPDATE_1 ||
|
|
led.LED_TEXT_NOW_2 != led.LED_TEXT_UPDATE_2 ||
|
|
led.LED_TEXT_NOW_3 != led.LED_TEXT_UPDATE_3 ||
|
|
led.LED_TEXT_NOW_4 != led.LED_TEXT_UPDATE_4)
|
|
{
|
|
if (DynamicArea(led.LED_IP, led.LED_TEXT_UPDATE_1,
|
|
string.IsNullOrWhiteSpace(led.LED_TEXT_UPDATE_2) ? led.LED_TEXT_DEFAULT_2 : led.LED_TEXT_UPDATE_2,
|
|
string.IsNullOrWhiteSpace(led.LED_TEXT_UPDATE_3) ? led.LED_TEXT_DEFAULT_3 : led.LED_TEXT_UPDATE_3,
|
|
string.IsNullOrWhiteSpace(led.LED_TEXT_UPDATE_4) ? led.LED_TEXT_DEFAULT_4 : led.LED_TEXT_UPDATE_4) == 0)
|
|
{
|
|
led.LED_TEXT_NOW_1 = led.LED_TEXT_UPDATE_1;
|
|
led.LED_TEXT_NOW_2 = led.LED_TEXT_UPDATE_2;
|
|
led.LED_TEXT_NOW_3 = led.LED_TEXT_UPDATE_3;
|
|
led.LED_TEXT_NOW_4 = led.LED_TEXT_UPDATE_4;
|
|
}
|
|
}
|
|
}
|
|
else if (led.LED_TEXT_NOW_1 != sNow)
|
|
{
|
|
if (DynamicArea(led.LED_IP, sNow, led.LED_TEXT_DEFAULT_2, led.LED_TEXT_DEFAULT_3, led.LED_TEXT_DEFAULT_4) == 0)
|
|
{
|
|
led.LED_TEXT_NOW_1 = sNow;
|
|
led.LED_TEXT_NOW_2 = led.LED_TEXT_DEFAULT_2;
|
|
led.LED_TEXT_NOW_3 = led.LED_TEXT_DEFAULT_3;
|
|
led.LED_TEXT_NOW_4 = led.LED_TEXT_DEFAULT_4;
|
|
}
|
|
}
|
|
}
|
|
return true;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
sResult = ex.Message;
|
|
return false;
|
|
}
|
|
}
|
|
|
|
private static int DynamicArea(byte[] aIP, string sText1, string sText2, string sText3, string sText4)
|
|
{
|
|
int err = 0;
|
|
bxdualsdk.EQprogramHeader_G6 programHeader = new bxdualsdk.EQprogramHeader_G6()
|
|
{
|
|
ProgramWeek = 0xff,
|
|
ProgramLifeSpan_ey = 0xffff
|
|
};
|
|
err |= bxdualsdk.bxDual_program_addProgram_G6(ref programHeader);
|
|
sText1 = string.IsNullOrWhiteSpace(sText1) ? " " : sText1;
|
|
sText2 = string.IsNullOrWhiteSpace(sText2) ? " " : sText2;
|
|
sText3 = string.IsNullOrWhiteSpace(sText3) ? " " : sText3;
|
|
sText4 = string.IsNullOrWhiteSpace(sText4) ? " " : sText4;
|
|
byte[] str1 = Encoding.GetEncoding("GBK").GetBytes($"{sText1}\0");
|
|
areaParams[0].strAreaTxtContent = Marshal.AllocHGlobal(str1.Length);
|
|
Marshal.Copy(str1, 0, areaParams[0].strAreaTxtContent, str1.Length);
|
|
byte[] str2 = Encoding.GetEncoding("GBK").GetBytes($"{sText2}\0");
|
|
areaParams[1].strAreaTxtContent = Marshal.AllocHGlobal(str2.Length);
|
|
Marshal.Copy(str2, 0, areaParams[1].strAreaTxtContent, str2.Length);
|
|
byte[] str3 = Encoding.GetEncoding("GBK").GetBytes($"{sText3}\0");
|
|
areaParams[2].strAreaTxtContent = Marshal.AllocHGlobal(str3.Length);
|
|
Marshal.Copy(str3, 0, areaParams[2].strAreaTxtContent, str3.Length);
|
|
byte[] str4 = Encoding.GetEncoding("GBK").GetBytes($"{sText4}\0");
|
|
areaParams[3].strAreaTxtContent = Marshal.AllocHGlobal(str4.Length);
|
|
Marshal.Copy(str4, 0, areaParams[3].strAreaTxtContent, str4.Length);
|
|
err |= bxdualsdk.bxDual_dynamicAreaS_AddTxtDetails_6G(aIP, 5005,
|
|
bxdualsdk.E_ScreenColor_G56.eSCREEN_COLOR_SINGLE, (byte)areaParams.Length, areaParams);
|
|
return err;
|
|
}
|
|
|
|
//private static int SendText(byte[] aIP, string sText1, string sText2, string sText3, string sText4)
|
|
//{
|
|
// int err = 0;
|
|
// bxdualsdk.EQprogramHeader_G6 programHeader = new bxdualsdk.EQprogramHeader_G6()
|
|
// {
|
|
// ProgramWeek = 0xff,
|
|
// ProgramLifeSpan_ey = 0xffff
|
|
// };
|
|
// err |= bxdualsdk.bxDual_program_addProgram_G6(ref programHeader);
|
|
// bxdualsdk.EQareaHeader_G6 areaHeader1 = new bxdualsdk.EQareaHeader_G6()
|
|
// {
|
|
// AreaX = 0,
|
|
// AreaY = 0,
|
|
// AreaWidth = 128,
|
|
// AreaHeight = 16,
|
|
// };
|
|
// err |= bxdualsdk.bxDual_program_addArea_G6(0, ref areaHeader1);
|
|
// bxdualsdk.EQareaHeader_G6 areaHeader2 = new bxdualsdk.EQareaHeader_G6()
|
|
// {
|
|
// AreaX = 0,
|
|
// AreaY = 16,
|
|
// AreaWidth = 128,
|
|
// AreaHeight = 16,
|
|
// };
|
|
// err |= bxdualsdk.bxDual_program_addArea_G6(1, ref areaHeader2);
|
|
// byte[] Font = Encoding.GetEncoding("GBK").GetBytes("宋体\0");
|
|
// bxdualsdk.EQpageHeader_G6 pageHeader = new bxdualsdk.EQpageHeader_G6()
|
|
// {
|
|
// DisplayMode = 0x2,
|
|
// ClearMode = 0x1,
|
|
// Speed = 40,
|
|
// StayTime = 200,
|
|
// RepeatTime = 1,
|
|
// fontSize = 11,
|
|
// color = (uint)0x01
|
|
// };
|
|
// if (string.IsNullOrWhiteSpace(sText1))
|
|
// {
|
|
// sText1 = " ";
|
|
// }
|
|
// if (string.IsNullOrWhiteSpace(sText2))
|
|
// {
|
|
// sText2 = " ";
|
|
// }
|
|
// err |= bxdualsdk.bxDual_program_picturesAreaAddTxt_G6(0, Encoding.GetEncoding("GBK").GetBytes($"{sText1}\0"), Font, ref pageHeader);
|
|
// err |= bxdualsdk.bxDual_program_picturesAreaAddTxt_G6(1, Encoding.GetEncoding("GBK").GetBytes($"{sText2}\0"), Font, ref pageHeader);
|
|
// bxdualsdk.EQprogram_G6 program = new bxdualsdk.EQprogram_G6();
|
|
// err |= bxdualsdk.bxDual_program_IntegrateProgramFile_G6(ref program);
|
|
// err |= bxdualsdk.bxDual_program_deleteProgram_G6();
|
|
// err |= bxdualsdk.bxDual_cmd_ofsStartFileTransf(aIP, 5005);
|
|
// err |= bxdualsdk.bxDual_cmd_ofsWriteFile(aIP, 5005, program.dfileName, program.dfileType, program.dfileLen, 1, program.dfileAddre);
|
|
// err |= bxdualsdk.bxDual_cmd_ofsWriteFile(aIP, 5005, program.fileName, program.fileType, program.fileLen, 1, program.fileAddre);
|
|
// err |= bxdualsdk.bxDual_cmd_ofsEndFileTransf(aIP, 5005);
|
|
// err |= bxdualsdk.bxDual_program_freeBuffer_G6(ref program);
|
|
// return err;
|
|
//}
|
|
}
|
|
}
|