tijian_tieying/web/dccdc.Selfhelp/frm_main_ym.cs
2025-02-20 12:14:39 +08:00

493 lines
19 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using LabLed.Components;
using log4net;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Apache.NMS;
using System.Net;
using System.Threading;
using System.Speech.Synthesis;
using System.Reflection;
namespace dccdc.Selfhelp
{
public partial class frm_main_ym : Form
{
IConnectionFactory factory;
IConnection connection;
ISession session;
string MQAddress
{
get
{
return System.Configuration.ConfigurationManager.AppSettings["MQAddress"];
}
}
ICollection<string> setting = extend.Config.AppSettings.Settings.AllKeys as ICollection<string>;
private void init()
{
speaker = new SpeechSynthesizer();
//speaker.SpeakStarted += Speaker_SpeakStarted;
//speaker.SpeakCompleted += Speaker_SpeakCompleted;
if (setting.Contains("yyk"))
{
speaker.SelectVoice(extend.Config.AppSettings.Settings["yyk"].Value);
}
if (setting.Contains("yd"))
{
speaker.Volume = int.Parse(extend.Config.AppSettings.Settings["yd"].Value);
}
if (setting.Contains("ys"))
{
speaker.Rate = int.Parse(extend.Config.AppSettings.Settings["ys"].Value);
}
//speaker.SelectVoice(cbb_yyk.Text);
//speaker.Rate = (int)nud_ys.Value;
//speaker.Volume = (int)nud_yd.Value;
if (string.IsNullOrEmpty(MQAddress))
{
MessageBox.Show("消息服务器地址没有设置!");
Application.Exit();
}
factory = new Apache.NMS.ActiveMQ.ConnectionFactory(MQAddress);
bool conned = false;
for (int i = 0; i < 10; i++)
{
try
{
connection = factory.CreateConnection();
connection.ClientId = Dns.GetHostName();
connection.Start();
conned = true;
break;
}
catch
{
Thread.Sleep(2000);
}
}
if (!conned)
{
MessageBox.Show("消息服务器设置不正常程序退出!");
Application.Exit();
return;
}
session = connection.CreateSession();
//receivemessageinit();
//remsg = session.CreateConsumer(new Apache.NMS.ActiveMQ.Commands.ActiveMQTopic("jbtxTopic"));
//cxhzrs = session.CreateConsumer(new Apache.NMS.ActiveMQ.Commands.ActiveMQTopic("sxpdrs"));
//remsg2 = session.CreateConsumer(new Apache.NMS.ActiveMQ.Commands.ActiveMQTopic("jbtxTopic"), "dept_code='20151'", false);
//cxhzrs.Listener += new MessageListener(sxpdrs_Listener);
hujiao = session.CreateConsumer(new Apache.NMS.ActiveMQ.Commands.ActiveMQTopic("hujiao"));
//remsg2 = session.CreateConsumer(new Apache.NMS.ActiveMQ.Commands.ActiveMQTopic("jbtxTopic"), "dept_code='20151'", false);
hujiao.Listener += new MessageListener(hujiao_Listener);
gxpdlb = session.CreateConsumer(new Apache.NMS.ActiveMQ.Commands.ActiveMQTopic("gxpdlb"));
//remsg2 = session.CreateConsumer(new Apache.NMS.ActiveMQ.Commands.ActiveMQTopic("jbtxTopic"), "dept_code='20151'", false);
gxpdlb.Listener += new MessageListener(gxpdlb_Listener);
gxpdlb_Listener(null);
//fs.gxdq("");
}
private void Speaker_SpeakCompleted(object sender, SpeakCompletedEventArgs e)
{
//throw new NotImplementedException();
fs.setVolue(30);
}
private void Speaker_SpeakStarted(object sender, SpeakStartedEventArgs e)
{
//throw new NotImplementedException();
fs.setVolue(0);
}
/// <summary>
/// 更新排队列表
/// </summary>
/// <param name="message"></param>
private void gxpdlb_Listener(IMessage message)
{
//throw new NotImplementedException();
WebClient wc = new WebClient();
wc.Encoding = Encoding.UTF8;
wc.Headers.Add("Content-Type", "application/x-www-form-urlencoded");
string jsondata = wc.UploadString(extend.URL + "zzj/getpdlb", "");
var pd = Newtonsoft.Json.JsonConvert.DeserializeObject<pdxx>(jsondata);
sendtoLED(pd);
/*
if (fs != null && !fs.IsDisposed)
{
fs.gxpd(pd.dds);
}
*/
}
string pdid = "";
private void hujiao_Listener(IMessage message)
{
//throw new NotImplementedException();
ITextMessage itm = message as ITextMessage;
pdid = itm.Text;
WebClient wc = new WebClient();
wc.Encoding = Encoding.UTF8;
wc.Headers.Add("Content-Type", "application/x-www-form-urlencoded");
string jsonData = wc.UploadString(extend.URL + "zzj/getPD_XX", "id=" + pdid);
var pdxx = Newtonsoft.Json.JsonConvert.DeserializeObject<Models.PD_XX>(jsonData);
speaker.SpeakAsync("请" + pdxx.hm.ToString("D4") + "号小朋友的家长到" + pdxx.jhckmc + "登记");
//fs.gxdq(("请 " + pdxx.hm.ToString("D4") + "号 小朋友的家长到 " + pdxx.jhckmc + "登记").ToString());
fs.txpd(pdxx);
}
IMessageConsumer hujiao;
IMessageConsumer gxpdlb;
string dqddrs = "0";
private void sxpdrs_Listener(IMessage message)
{
//throw new NotImplementedException();
ITextMessage itm = message as ITextMessage;
dqddrs = itm.Text;
// this.Invoke(new MethodInvoker(sxrs));
}
public void sxrs()
{
if (pd != null && !pd.IsDisposed)
{
pd.sxrs(dqddrs);
}
}
IMessageConsumer cxhzrs;
public frm_main_ym()
{
InitializeComponent();
log4net.LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType).Info(DateTime.Now.ToString() + "初始化窗口成功");
}
private SpeechSynthesizer speaker;
frm_ymVideo fs = new frm_ymVideo();
private void frm_main_ym_Load(object sender, EventArgs e)
{
log4net.LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType).Info(DateTime.Now.ToString() + "执行LOAd");
foreach (var s in Screen.AllScreens)
{
if (!s.Primary)
{
Point mf = new Point();
mf = s.Bounds.Location;
fs.Location = mf;
fs.TopLevel = true;
fs.TopMost = true;
//fs.ksname = ksname;
fs.Owner = this;
fs.WindowState = FormWindowState.Maximized;
fs.StartPosition = FormStartPosition.Manual;
fs.Show();
/*
Thread t = new Thread(() => {
while (true) {
Thread.Sleep(10000);
fs.txpd(new Models.PD_XX {
id = new Random().Next(1, 100),
hm = new Random().Next(1, 100),
jhckmc = "测试"
});
}
});
t.Start();
*/
break;
}
}
if (extend.Config.AppSettings.Settings["min"].Value == "true")
{
this.WindowState = FormWindowState.Minimized;
}
else
{
TopMost = true;
TopLevel = true;
btn_pdjh.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None;
btn_pdjh.FlatAppearance.BorderSize = 0;
btn_pdjh.FlatAppearance.MouseDownBackColor = System.Drawing.Color.Transparent;
btn_pdjh.FlatAppearance.MouseOverBackColor = System.Drawing.Color.Transparent;
btn_pdjh.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
//btn_pdjh.FlatAppearance.BorderSize = 0;
//btn_zzjf.FlatAppearance.BorderSize = 0;
btn_zzjf.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None;
btn_zzjf.FlatAppearance.BorderSize = 0;
btn_zzjf.FlatAppearance.MouseDownBackColor = System.Drawing.Color.Transparent;
btn_zzjf.FlatAppearance.MouseOverBackColor = System.Drawing.Color.Transparent;
btn_zzjf.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
timer1.Enabled = true;
timer2.Enabled = true;
}
init();
}
frm_yypd pd = new Selfhelp.frm_yypd();
private void btn_pdjh_Click(object sender, EventArgs e)
{
pd.TopMost = true;
pd.TopLevel = true;
if (pd == null || pd.IsDisposed)
pd = new Selfhelp.frm_yypd();
if (pd.Visible == false)
pd.ShowDialog();
}
LedCommon LEDSender = new LedCommon();
private const int WM_LED_NOTIFY = 1025;
private int dev = -1;
private int dev1 = -1;
private int dev2 = -1;
private int dev3 = -1;
private void timer1_Tick(object sender, EventArgs e)
{
timer1.Enabled = false;
LedCommon.DEVICEPARAM param = new LedCommon.DEVICEPARAM();
GetDeviceParam(ref param);
dev = LEDSender.LED_Open(ref param, LedCommon.NOTIFY_EVENT, (int)Handle, WM_LED_NOTIFY);
//dev = LEDSender.LED_Open(ref param, LedCommon.NOTIFY_NONE, (int)Handle, WM_LED_NOTIFY);
if (dev == -1)
{
//MessageBox.Show( "打开通讯设备失败");
}
else
{
//MessageBox.Show("打开通讯设备成功");
}
}
private void GetDeviceParam(ref LedCommon.DEVICEPARAM param)
{
param.devType = (uint)LedCommon.eDevType.DEV_UDP;
param.ComPort = (uint)Convert.ToInt16(1);
param.Speed = (uint)LedCommon.eBaudRate.SBR_57600;
param.locPort = 9999;
param.rmtPort = 6666;
}
private void OnLEDNotify(UInt32 msg, UInt32 wParam, UInt32 lParam)
{
ILog loger = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().GetType());
LedCommon.NotifyMessage notify = new LedCommon.NotifyMessage();
LEDSender.LED_GetDeviceNotifyMessage(dev, ref notify);
//LEDSender.LED_GetNotifyMessage(ref notify);
switch (notify.Message)
{
case (int)LedCommon.eResponseMessage.LM_TX_COMPLETE:
loger.Info("发送完成");
//MessageBox.Show( "发送完成");
break;
case (int)LedCommon.eResponseMessage.LM_TIMEOUT:
loger.Info("命令执行超时");
//MessageBox.Show("命令执行超时");
break;
case (int)LedCommon.eResponseMessage.LM_RESPOND:
switch (notify.Command)
{
case LedCommon.PKC_GET_POWER:
if (notify.Status == 1)
loger.Info("读取电源状态完成,当前电源状态为打开状态");
//MessageBox.Show( Text = "读取电源状态完成,当前电源状态为打开状态");
else
loger.Info("读取电源状态完成,当前电源状态为打开状态");
//Text = "读取电源状态完成,当前电源状态为关闭状态";
break;
case LedCommon.PKC_SET_POWER:
loger.Info("读取电源状态完成,当前电源状态为打开状态");
//Text = "设置电源完成";
break;
case LedCommon.PKC_GET_BRIGHT:
loger.Info("当前亮度为" + notify.Status);
//Text = "当前亮度为" + notify.Status;
break;
case LedCommon.PKC_GET_LEAF:
case LedCommon.PKC_SET_LEAF:
loger.Info("当前页面为" + notify.Status);
// Text = "当前页面为" + notify.Status;
break;
case LedCommon.PKC_SET_BRIGHT:
loger.Info("设置亮度完成");
//Text = "设置亮度完成";
break;
case LedCommon.PKC_ADJUST_TIME:
loger.Info("校正控制卡时间完成");
//Text = "校正控制卡时间完成";
break;
case LedCommon.PKC_SET_AUTO_POWER:
loger.Info("设置自动开关屏时间完成");
// Text = "设置自动开关屏时间完成";
break;
}
break;
}
}
protected override void DefWndProc(ref System.Windows.Forms.Message m)
{
switch (m.Msg)
{
case WM_LED_NOTIFY:
OnLEDNotify((UInt32)m.Msg, (UInt32)m.WParam, (UInt32)m.LParam);
break;
default:
base.DefWndProc(ref m);//调用基类函数处理非自定义消息。
break;
}
}
private void timer2_Tick(object sender, EventArgs e)
{
timer2.Enabled = false;
sendtoLED(null);
}
private void btn_zzjf_Click(object sender, EventArgs e)
{
frm_zzjf zzjf = new frm_zzjf();
zzjf.TopMost = true;
zzjf.TopLevel = true;
zzjf.ShowDialog();
}
private void sendtoLED(pdxx pd)
{
LedCommon.RECT r;
if (dev >= 0 && LEDSender.LED_GetDeviceStatus(dev) == 0)
{
//LEDSender.MakeRootEx(LedCommon.eRootType.ROOT_PLAY, LedCommon.eScreenType.SCREEN_COLOR, 5);
//LEDSender.AddLeaf(86400000);
//r.left = 40;
//r.top = 1;
//r.right = 50;
//r.bottom = 16;
//LEDSender.AddText("德城区疾病预防控制中心数字化门诊", ref r, 0, 1, 1, "宋体", 16, 255, 0);
//LEDSender.LED_SendToScreen(dev, 0, "192.168.18.99", 6666);
//Text = "正在发送节目...";
LEDSender.MakeRootEx(LedCommon.eRootType.ROOT_PLAY, LedCommon.eScreenType.SCREEN_COLOR, 5);
LEDSender.AddLeaf(86400000);
r.left = 64;
r.top = 0;
r.right = 448;
r.bottom = 32;
LEDSender.AddText("德城区疾控中心数字化门诊", ref r, 1, 1, 1, "宋体", 20, 255, 0);
r.left = 0;
r.top = 32;
r.right = 448;
r.bottom = 48;
LEDSender.AddText("-------------------------------------------------------------------------------------------------", ref r, 1, 1, 1, "宋体", 8, 255, 0);
r.left = 0;
r.top = 224;
r.right = 448;
r.bottom = 240;
LEDSender.AddText("-------------------------------------------------------------------------------------------------", ref r, 1, 1, 1, "宋体", 8, 255, 0);
r.left = 144;
r.top = 208;
r.right = 448;
r.bottom = 224;
LEDSender.AddText("请小朋友接种完成后,留观半小时。", ref r, 1, 1, 1, "宋体", 10, 255, 0);
r.left = 144;
r.top = 240;
r.right = 234;
r.bottom = 256;
LEDSender.AddDateTime(ref r, 1, "宋体", 10, 255, LedCommon.eTimeFormat.DF_W, 0);
r.left = 224;
r.top = 240;
r.right = 320;
r.bottom = 256;
LEDSender.AddDateTime(ref r, 1, "宋体", 10, 255, LedCommon.eTimeFormat.DF_HNS, 0);
r.left = 320;
r.top = 240;
r.right = 448;
r.bottom = 256;
LEDSender.AddText("联系电话 2267131", ref r, 1, 1, 1, "宋体", 10, 255, 0);
//LEDSender.LED_SendToScreen(dev, (byte)Convert.ToInt16(eAddress.Text), eRemoteHost.Text, 6666);
//LEDSender.AddDateTime(ref r, 1, "宋体", 12, 0xff00, LedCommon.eTimeFormat.DF_HNS, 0);
//r.left = 32;
//r.top = 64;
//r.right = 448;
//r.bottom = 128;
//LEDSender.AddText("大家好,欢迎大家!", ref r, 1, 1, 1, "宋体", 28, 255, 0);
//LEDSender.LED_SendToScreen(dev, 0, "192.168.18.99", 6666);
if (pd != null)
{
//LEDSender.AddLeaf(5000);
r.left = 16;
r.top = 48;
r.right = 448;
r.bottom = 192;
StringBuilder sb = new StringBuilder();
int i = 0;
i = pd.jhs.Count - 8;
if (i < 0)
i = 0;
for (; i < pd.jhs.Count; i++)
{
sb.Append("请" + pd.jhs[i].hm.ToString("D4") + "号小朋友的家长到" + pd.jhs[i].jhckmc.Replace(" ", "") + "登记");
if (i < pd.jhs.Count - 1)
{
sb.Append("\r\n");
}
}
LEDSender.AddTextEx(sb.ToString(), ref r, 1, 1, 1, "宋体", 12, 255, 0, 0);
}
else
{
//LEDSender.AddLeaf(5000);
//r.left = 16;
//r.top = 48;
//r.right = 224;
//r.bottom = 144;
//LEDSender.AddTextEx("于兴海请到1号窗口登记\r\n于兴海请到2号窗口登记\r\n于兴海请到3号窗口登记", ref r, 1, 1, 1, "宋体", 10, 255, 0, 0);
}
LEDSender.LED_SendToScreen(dev, 0, "192.168.18.99", 6666);
//LEDSender.UserCanvas_Draw_Line(0, 33, 447, 33,10,255);
}
else
{
//MessageBox.Show("失败!");
}
}
}
public class pdxx
{
public List<Models.PD_XX> jhs { get; set; }
public List<Models.PD_XX> dds { get; set; }
}
}