⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 settimeform.cs

📁 gps首先手机要有上网的硬件条件,然后获取某一网络地址映射的GUID ,最后通过调用ConnMgrEstablishConnectionSync函数让手机自己选择某一最 佳路径.
💻 CS
字号:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using Microsoft.Practices.EnterpriseLibrary.Data;
using System.IO.Ports;
namespace GPSSerialPortData
{
    public partial class SetTimeForm : Form
    {
        private SerialPort[] s_Ports = null;
        public SetTimeForm(SerialPort[] ports)
        {
            InitializeComponent();
            s_Ports = ports;
        }

        private void InitclbGroup()
        {
            Database db = DatabaseFactory.CreateDatabase();
            StringBuilder sb = new StringBuilder();
            sb.Append("SELECT * FROM  [soft_sailingservice].[dbo].[NS_GPS_Group]");
            DataSet ds = db.ExecuteDataSet(CommandType.Text, sb.ToString());
            
            if (ds != null)
            {
                foreach (DataRow dr in ds.Tables[0].Rows)
                {
                    CheckedListBoxItem clbItem = new CheckedListBoxItem(dr["GroupName"].ToString() +"-"+dr["PortName"].ToString(), dr);
                    clbGroup.Items.Add(clbItem);
                }
            }
        }

        private void InitclbTerminal()
        {
            Database db = DatabaseFactory.CreateDatabase();
            StringBuilder sb = new StringBuilder();
            sb.Append("SELECT dbo.NS_GPS_Terminal.Id, dbo.NS_GPS_Terminal.TerminalNumber, dbo.NS_GPS_TerminalGroup.Group_Id, dbo.NS_GPS_Group.PortName");
            sb.Append(" FROM dbo.NS_GPS_Terminal INNER JOIN");
            sb.Append(" dbo.NS_GPS_TerminalGroup ON dbo.NS_GPS_Terminal.Id = dbo.NS_GPS_TerminalGroup.Terminal_Id INNER JOIN");
            sb.Append(" dbo.NS_GPS_Group ON dbo.NS_GPS_TerminalGroup.Group_Id = dbo.NS_GPS_Group.Id");
            sb.Append(" ORDER BY dbo.NS_GPS_Terminal.TerminalNumber");
            DataSet ds = db.ExecuteDataSet(CommandType.Text, sb.ToString());
           
            if (ds != null)
            {
                foreach (DataRow dr in ds.Tables[0].Rows)
                {
                    CheckedListBoxItem clbItem = new CheckedListBoxItem(dr["TerminalNumber"].ToString(), dr);
                    clbTerminal.Items.Add(clbItem);
                }
            }
        }

        private void btnCancel_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void btnSave_Click(object sender, EventArgs e)
        {
            if(dateTimePicker1.Text.ToString()=="00:00")
            {
                MessageBox.Show("请输入设置时间","提示");
                return;
            }

            if (clbTerminal.CheckedIndices.Count == 0)
            {
                MessageBox.Show("请选择终端", "提示");
                return;
            }
            int setTime = int.Parse(dateTimePicker1.Text.Replace(":", ""));
            foreach (object obj in clbTerminal.CheckedItems)
            {
                DataRow dr = ((CheckedListBoxItem)obj).Value as DataRow;
                string ttt = dr["TerminalNumber"].ToString();
                byte[] bytes = DataSend.CreateBytes(int.Parse(dr["TerminalNumber"].ToString()), DataSend.SendType.H54, setTime);
                try
                {
                    foreach (SerialPort port in s_Ports)
                    {
                        if (port.PortName == dr["PortName"].ToString())
                        {

                            port.Write(bytes, 0, bytes.Length);
                            break;
                        }
                    }
                }
                catch
                {
                }
            }
            this.Close();
        }

        private void SetTimeForm_Load(object sender, EventArgs e)
        {
            //dateTimePicker1.Text = "05:00";
            dateTimePicker1.Value = Convert.ToDateTime("01:05:00");
            try
            {
                InitclbGroup();
                InitclbTerminal();
            }
            catch
            {
                MessageBox.Show("无法连接数据库\n请配置数据库","提示");
                this.Close();
            }
        }

        private void clbGroup_ItemCheck(object sender, ItemCheckEventArgs e)
        {
            if (e.CurrentValue == CheckState.Checked)
            {
                CheckedListBoxItem clbItem = clbGroup.Items[e.Index] as CheckedListBoxItem;
                DataRow dr = clbItem.Value as DataRow;

                for (int i = 0; i < clbTerminal.Items.Count; i++)
                {
                    CheckedListBoxItem clbItemTmp = clbTerminal.Items[i] as CheckedListBoxItem;
                    DataRow drTmp = clbItemTmp.Value as DataRow;
                    if (drTmp["Group_Id"].ToString() == dr["Id"].ToString())
                    {
                        clbTerminal.SetItemChecked(i, false);
                    }
                }
            }
            else
            {
                CheckedListBoxItem clbItem = clbGroup.Items[e.Index] as CheckedListBoxItem;
                DataRow dr = clbItem.Value as DataRow;

                for (int i = 0; i < clbTerminal.Items.Count; i++)
                {
                    CheckedListBoxItem clbItemTmp = clbTerminal.Items[i] as CheckedListBoxItem;
                    DataRow drTmp = clbItemTmp.Value as DataRow;
                    if (drTmp["Group_Id"].ToString() == dr["Id"].ToString())
                    {
                        clbTerminal.SetItemChecked(i, true);
                    }
                }
            }
        }
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -