Exemple #1
0
        //服务开启
        private void btn_Start_Click(object sender, EventArgs e)
        {
            try
            {
                if (test_connection() == false)
                {
                    listBox1.Items.Add("连接数据库失败");
                    listBox1.Items.Add("请确保数据库服务已开启,并且数据库连接填写正确");
                    return;
                }

                ServerSocketHelper.Init();
                ServerSocketHelper.StartListen(txt_ServerIp.Text.Trim(), txt_Port_SWS.Text.Trim());


                GPRSControl.DTU_NetServer.Init();
                // GPRSControl.GPRSControlNetServer.StartListen("192.168.1.8","5678");
                GPRSControl.DTU_NetServer.StartListen(txt_ServerIp.Text.Trim(), txt_port_DTU.Text.Trim());

                V88CommunicationThread.getInstance().Start();
                UdpV88Server.getInstance().StartListen(txt_ServerIp.Text.Trim(), txt_port_udp.Text.Trim());

                //心跳线程开启
                HeartbeatThread.Start();
                //主动发指令的线程开启
                ControlCommandThread.Start();
                //定时发指令的线程开启
                AutoCollectionThread.Start();

                save();

                btn_Start.Enabled = false;
                btn_Stop.Enabled  = true;

                ///关闭自动启动服务的定时器
                if (AutoStartTimer != null)
                {
                    AutoStartTimer.Stop();
                }
                listBox1.Items.Add("服务已成功开启");
            }
            catch (Exception ex)
            {
                ServerSocketHelper.Close();
                //  DTU_NetServer.Close();

                LogMg.AddError(ex);
                listBox1.Items.Add(ex.Message);
                //  MessageBox.Show(ex.Message);
            }
        }
Exemple #2
0
 public static void HandlerData(Socket clientSocket, byte[] content, int conLen, byte type, string tel)
 {
     if (type == HD_DTU.DTU_REGISTER_DATA)
     {
         if (Response_Reigster(clientSocket, tel))
         {
             DTU_ClientManager.AddClient(tel, clientSocket);
         }
         else
         {
             LogMg.AddDebug("tel=" + tel + "  响应客户端注册数据失败");
         }
     }
 }
        /// <summary>
        /// 返回毫秒数
        /// </summary>
        /// <param name="item"></param>
        /// <returns></returns>
        private double GetSecond(string item)
        {
            double seconds = 0;

            try
            {
                seconds = double.Parse(GetItemByKey(item)) * 1000;
            }
            catch (Exception ex)
            {
                LogMg.AddError(ex);
            }
            return(seconds);
        }
 /// <summary>
 /// 根据orgId返回Org.XML中的对象    如果不存在则返回null
 /// </summary>
 /// <param name="orgId"></param>
 /// <returns></returns>
 public Clazz.Config.XML_Org GetOrgByOrgId(string orgId)
 {
     Clazz.Config.XML_Org org = null;
     try
     {
         org = Orgs.SingleOrDefault(c => c.OrgId == orgId);
     }
     catch (Exception e)
     {
         LogMg.AddError(e);
         DEBUG.MsgBox(e.ToString());
     }
     return(org);
 }
Exemple #5
0
        /// <summary>
        /// 拆包
        /// </summary>
        /// <param name="str"></param>
        /// <param name="strcon"></param>
        /// <param name="type"></param>
        /// <param name="strlen"></param>
        /// <param name="conlen"></param>
        /// <returns></returns>
        public static bool UnPack(byte[] pack, int packLen, ref byte[] content, ref int conlen, ref byte type, ref string tel)
        {
            try
            {
                //日志
                string str = "";
                for (int j = 0; j < packLen; j++)
                {
                    str += pack[j] + " ";
                }
                LogMg.AddDebug(str);


                int i;
                for (i = 0; i < pack.Length - 1; i++)
                {
                    if (pack[i] == ZG_DTU.HEAD)
                    {
                        break;
                    }
                }
                type = pack[i + 1];                //类型
                if (type == ZG_DTU.USER_DATA)      //用户数据拆包
                {
                    int low    = pack[i + 2];      //低8位
                    int high   = pack[i + 3];      //高8位
                    int length = high * 256 + low; //从手机号码到最后的字节数
                    conlen = length;               //内容长度
                    Buffer.BlockCopy(pack, i + 4, content, 0, conlen);
                }
                else if (type == ZG_DTU.REGISTER_DATA) //注册数据拆包
                {
                    int    low     = pack[i + 2];      //低8位
                    int    high    = pack[i + 3];      //高8位
                    int    length  = high * 256 + low; //从手机号码到最后的字节数
                    byte[] byteTel = new byte[11];     //手机号码字节
                    Buffer.BlockCopy(pack, i + 4, byteTel, 0, 11);
                    tel    = Encoding.ASCII.GetString(byteTel);
                    conlen = length - 11;  //内容长度
                    Buffer.BlockCopy(pack, i + 4 + 11, content, 0, conlen);
                }
            }
            catch (Exception ex)
            {
                LogMg.AddError(ex);
                return(false);
            }
            return(true);
        }
Exemple #6
0
        /// <summary>
        /// 保存
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btn_Save_Click(object sender, EventArgs e)
        {   //新增
            try
            {
                if (!Validation())
                {
                    return;
                }

                XML_Station _station = new XML_Station();
                _station.StationId    = int.Parse(txt_stationId.Text);
                _station.StationName  = txt_stationName.Text;
                _station.OrgId        = txt_orgid.Text;
                _station.TransferCode = txt_transferCode.Text;

                string msg = "";
                if (UniqueId == 0)
                {
                    if (SysConfig.clientConfig.AddStation(_station, ref msg))
                    {
                        MessageBox.Show("添加成功");
                        this.Close();
                    }
                    else
                    {
                        MessageBox.Show(msg);
                    }
                }
                else
                {
                    //修改
                    _station.UniqueId = UniqueId;
                    if (SysConfig.clientConfig.EditStation(_station, ref msg))
                    {
                        MessageBox.Show("修改成功");
                        this.Close();
                    }
                    else
                    {
                        MessageBox.Show(msg);
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
                LogMg.AddError(ex);
            }
        }
Exemple #7
0
 /// <summary>
 /// 心跳数据处理
 /// </summary>
 /// <param name="socket"></param>
 /// <param name="pack"></param>
 public static bool HeartbeatDataHandler(Socket socket)
 {
     try
     {
         //对心跳做一个回应
         ZG_DTU.Send(socket, new byte[1], 0, ZG_DTU.HEARTBEAT_DATA);
         return(true);
     }
     catch (Exception ex)
     {
         LogMg.AddError(ex);
         DEBUG.MsgBox(ex.ToString());
         return(false);
     }
 }
Exemple #8
0
        /// <summary>
        /// 保存
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btn_Save_Click(object sender, EventArgs e)
        {
            try
            {
                if (!Validation())
                {
                    return;
                }

                XML_CountryTest ct = new XML_CountryTest();
                ct.StationUniqueId = Convert.ToInt32(cmb_station.SelectedValue);
                ct.NodeId          = cmb_node.SelectedValue.ToString();
                ct.Remark          = cmb_node.Text;
                ct.TestId          = Convert.ToInt32(txt_testid.Text);
                ct.Multiple        = Convert.ToInt32(txt_multiple.Text);

                string msg = "";
                if (UniqueId == 0)
                {
                    if (SysConfig.clientConfig.AddCountryTest(ct, ref msg))
                    {
                        MessageBox.Show("添加成功", "提示");
                        this.Close();
                    }
                    else
                    {
                        MessageBox.Show(msg, "提示");
                    }
                }
                else
                {
                    ct.UniqueId = UniqueId;
                    if (SysConfig.clientConfig.EditCountryTest(ct, ref msg))
                    {
                        MessageBox.Show("修改成功", "提示");
                        this.Close();
                    }
                    else
                    {
                        MessageBox.Show(msg, "提示");
                    }
                }
            }
            catch (Exception ex)
            {
                LogMg.AddError(ex);
            }
        }
Exemple #9
0
        private static void 添加DTU控制任务(SWSDataContext db)
        {
            try
            {
                //查询出一个小时内有指令的站点的id
                //List<int> stations = db.ExecuteQuery<int>("SELECT station_id FROM dbo.control_command where (state=0 OR state IS NULL) and communication_mode=2  and datediff(mi,add_datetime,GETDATE())<60 group by station_id ").ToList();
                List <int> stations = db.ExecuteQuery <int>("SELECT station_id FROM dbo.control_command where (state=0 OR state IS NULL) and (communication_mode=2 or tp='3')    group by station_id ").ToList();
                if (stations.Count == 0)
                {
                    return;
                }
                ///站点id和transfer_code的键值对
                List <Station_transferCode> StaTrans = db.ExecuteQuery <Station_transferCode>("SELECT  id as stationId,transfer_code FROM  dbo.country_station WHERE  transfer_code IS NOT NULL AND transfer_code<>''  AND transfer_code<>'null'").ToList();
                //循环站点   将站点添加到线程池
                foreach (int stationid in stations)
                {
                    try
                    {
                        Station_transferCode StaTran = StaTrans.SingleOrDefault(c => c.stationId == stationid);
                        //如果这个站点没有配置dtu    就跳过
                        if (StaTran == null)
                        {
                            continue;
                        }
                        //根据设备唯一编号 找出 DTUClientInfo
                        DTUClientInfo client = DTU_ClientManager.Clients.SingleOrDefault(c => c.TelOrGprsId == StaTran.transfer_code);
                        if (client == null)
                        {
                            continue;
                        }

                        //如果客户端在【任务队列】和【线程里】里已经存在了,就不继续添加
                        if (!HasExistClientInPool(client))
                        {
                            PoolA.AddTaskItem(new WaitCallback(ExecuteDtuOrder), client);
                        }
                    }
                    catch (Exception ex)
                    {
                        LogMg.AddError(ex);
                    }
                }
            }
            catch (Exception ex)
            {
                LogMg.AddError(ex);
            }
        }
Exemple #10
0
        /// <summary>
        /// 读取配置文件数据
        /// </summary>
        public static void ReadConfig()
        {
            DateTime start = DateTime.Now;

            userProfile.ReadConfig();
            orgConfig.ReadConfig();
            DTU_StationConfig.ReadConfig();

            DBCJconfig.ReadConfig();
            clientConfig.ReadConfig();
            GD_Config.GenerateConfig();

            V88CommunicationThread.getInstance().readConfig();
            DateTime end = DateTime.Now;

            LogMg.AddInfo(DateUtil.datediff(start, end));
        }
Exemple #11
0
        private SqlConnection getConByOrgId(string orgId)
        {
            string dbname = "";

            try
            {
                Clazz.Config.XML_Org _org = SysConfig.orgConfig.GetOrgByOrgId(orgId);
                dbname = _org.DBName;
            }
            catch (Exception ex)
            {
                LogMg.AddError("orgId:" + orgId + System.Environment.NewLine + ex.ToString());
                DEBUG.ThrowException(ex);
            }

            return(Util.ServerSocketHelper.GetConnection(dbname));     //返回分厂数据库连接
        }
Exemple #12
0
        /// <summary>
        /// 分配任务
        /// </summary>
        private static void Work()
        {
            while (true)
            {
                int length = DTU_ClientManager.Clients.Count;

                for (int i = 0; i < length; i++)
                {
                    try
                    {
                        if (DTU_ClientManager.Clients[i].StationId != 0)//如果这个客户端在数据库中有对应的站点id
                        {
                            if (!HasExistClientInPool(DTU_ClientManager.Clients[i]))
                            {
                                PoolB.AddTaskItem(new WaitCallback(ExecuteOrder), DTU_ClientManager.Clients[i]);
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                        LogMg.AddError(ex);
                    }
                }
                List <GD_Station> gd_stations = SysConfig.GD_Config.GD_Stations;
                for (int i = 0; i < gd_stations.Count; i++)
                {
                    try
                    {
                        //if (gd_stations[i].stationId == 2371)
                        //{
                        // if (!HasExistClientInPool(gd_stations[i].Unique))
                        if (!HasExistClientInPool(gd_stations[i]))
                        {
                            PoolB.AddTaskItem(new WaitCallback(ExecuteGD透传Order), gd_stations[i]);
                        }
                        //}
                    }
                    catch (Exception ex)
                    {
                        LogMg.AddError(ex);
                    }
                }
                Thread.Sleep((int)SysConfig.userProfile.RequestToClientInterval);
            }
        }
Exemple #13
0
        /// <summary>
        /// 根据传输编码获得stationid
        /// </summary>
        /// <param name="transferCode"></param>
        /// <returns></returns>
        public int GetStationIdByTransferCode(string transferCode)
        {
            int stationId = 0;

            try
            {
                Clazz.Config.ClientConfig.XML_Station station = AllStation.SingleOrDefault(c => c.TransferCode == transferCode);
                if (station != null)
                {
                    stationId = station.StationId;
                }
            }
            catch (Exception ex)
            {
                LogMg.AddError(ex);
            }
            return(stationId);
        }
Exemple #14
0
        /// <summary>
        /// 根据传输编码获得orgid
        /// </summary>
        /// <param name="transferCode"></param>
        /// <returns></returns>
        public string GetOrgIdByTransferCode(string transferCode)
        {
            string orgid = "";

            try
            {
                Clazz.Config.ClientConfig.XML_Station station = AllStation.SingleOrDefault(c => c.TransferCode == transferCode);
                if (station != null)
                {
                    orgid = station.OrgId;
                }
            }
            catch (Exception ex)
            {
                LogMg.AddError(ex);
            }
            return(orgid);
        }
Exemple #15
0
        /// <summary>
        /// 根据socket 查找这个站点所使用的DTU采用的传输协议
        /// </summary>
        /// <param name="socket"></param>
        /// <returns></returns>
        public static string GetProtocolBySocket(Socket socket)
        {
            string protocol = "";

            try
            {
                DTUClientInfo client = Clients.SingleOrDefault(c => c.socket == socket);
                if (client != null)
                {
                    protocol = client.Protocol;
                }
            }
            catch (Exception ex)
            {
                LogMg.AddError(ex);
            }
            return(protocol);
        }
Exemple #16
0
 /// <summary>
 /// 解析注册的数据是DTU协议还是DDP协议
 /// </summary>
 /// <param name="buffer"></param>
 /// <returns></returns>
 public static string CheckProtocolByRegisterData(byte[] buffer, int len)
 {
     if (ZG_DTU.CheckProtocolByRegisterData(buffer, len) == true)
     {
         return(_ZG_DTU);
     }
     if (HD_DTU.CheckProtocolByRegisterData(buffer, len) == true)
     {
         return(_HD_DTU);
     }
     if (JBT_DTU.CheckProtocolByRegisterData(buffer, len) == true)
     {
         return(_JBT_DTU);
     }
     //如果不符合上面的协议标准  则返回空字符串
     LogMg.AddDebug("检验注册数据格式不正确 ,即不符合佐格DTU协议,也不符合宏电DTU协议,也不符号金博通DTU协议");
     return("");
 }
Exemple #17
0
        /// <summary>
        /// 保存数据到数据库
        /// </summary>
        /// <param name="testid"></param>
        /// <param name="value"></param>
        private static void SaveToDatabase(SWSDataContext db, int testid, double value)
        {
            LogMg.AddDebug(string.Format("testid={0}    value={1}", testid, value));
            //  SWSDataContext db = new SWSDataContext(Util.ServerSocketHelper.GetConnection(dbname));
            test test = db.test.SingleOrDefault(c => c.testid == testid);   //查询出检测点

            if (test != null)
            {
                if (test.means.Trim() == "屏幕取词" || test.means.Trim() == "自动获取")
                {
                    realrec realrec = new realrec();
                    realrec.testid   = testid;
                    realrec.value    = (decimal)value;
                    realrec.testtime = DateTime.Now;
                    realrec.remark   = "from 201 Server AutoCollectionThread";
                    db.realrec.InsertOnSubmit(realrec);
                    db.SubmitChanges();     //提交
                }
            }
        }
Exemple #18
0
 /// <summary>
 /// 测试连接并立即使用
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void btn_test_connection_Click(object sender, EventArgs e)
 {
     if (test_connection() == true)
     {
         try
         {
             save();
         }
         catch (Exception ex)
         {
             LogMg.AddError(ex);
             DEBUG.ThrowException(ex);
         }
         MessageBox.Show("连接数据库成功");
     }
     else
     {
         MessageBox.Show("连接数据库失败");
     }
 }
        //接收到客户端发来的数据,并向客户端返回消息
        private void RecieveCallBack(Socket RSocket, string msg)
        {
            try
            {
                //Socket RSocket = (Socket)ar.AsyncState;

                bool flag = this.Save(msg, RSocket);

                S_To_C_Data <object> s_to_c_data = new S_To_C_Data <object>();
                s_to_c_data.Flag    = HandleFlag.Country;
                s_to_c_data.Success = flag;
                string json = Utility.JsonHelper.JsonSerializer <S_To_C_Data <object> >(s_to_c_data);

                RSocket.Send(Encoding.Unicode.GetBytes(json));
            }
            catch (Exception ex)
            {
                LogMg.AddError(ex);
                DEBUG.ThrowException(ex);
            }
        }
Exemple #20
0
        /// <summary>
        /// 修改countrytest
        /// </summary>
        /// <param name="_test"></param>
        /// <param name="msg"></param>
        /// <returns></returns>
        public bool EditCountryTest(XML_CountryTest _test, ref string msg)
        {
            bool flag = true;

            try
            {
                lock (AllCountryTest)
                {
                    XML_CountryTest s = AllCountryTest.SingleOrDefault(c => c.UniqueId == _test.UniqueId);
                    AllCountryTest.Remove(s);   //先把这个对象删了
                    AllCountryTest.Add(_test);  //再把新的对象添加进去
                    flag = EditCountryTestFromXML(_test);
                }
            }
            catch (Exception ex)
            {
                LogMg.AddError(ex);
                flag = false;
            }
            return(flag);
        }
Exemple #21
0
        public bool EditStation(XML_Station station, ref string msg)
        {
            bool flag = true;

            try
            {
                lock (AllStation)
                {
                    XML_Station s = AllStation.SingleOrDefault(c => c.UniqueId == station.UniqueId);
                    AllStation.Remove(s);    //先把这个对象删了
                    AllStation.Add(station); //再把新的对象添加进去
                    flag = EditStationFromXML(station);
                }
            }
            catch (Exception ex)
            {
                LogMg.AddError(ex);
                flag = false;
            }
            return(flag);
        }
Exemple #22
0
        /// <summary>
        /// 修改DeviceControl
        /// </summary>
        /// <param name="_device"></param>
        /// <param name="msg"></param>
        /// <returns></returns>
        public bool EditDeviceControl(XML_DeviceControl _device, ref string msg)
        {
            bool flag = true;

            try
            {
                lock (AllDevice)
                {
                    XML_DeviceControl dc = AllDevice.SingleOrDefault(c => c.UniqueId == _device.UniqueId);
                    AllDevice.Remove(dc);   //先把这个对象删了
                    AllDevice.Add(_device); //再把新的对象添加进去
                    flag = EditDeviceControlFromXML(_device);
                }
            }
            catch (Exception ex)
            {
                LogMg.AddError(ex);
                flag = false;
            }
            return(flag);
        }
Exemple #23
0
 /// <summary>
 /// 当收到注册信息无误后, 应调用此方法回应DTU
 /// </summary>
 public static bool ResponseRegister(Socket socket, string tel)
 {
     try
     {
         //应答客户端
         byte[] sendBytes = new byte[16];
         sendBytes[0] = HD_DTU.HEAD;
         sendBytes[1] = HD_DTU.DSC_REGISTER_DATA;
         sendBytes[2] = 0;
         sendBytes[3] = 0x10;
         byte[] b_tel = Encoding.ASCII.GetBytes(tel);
         Buffer.BlockCopy(b_tel, 0, sendBytes, 4, 11);
         sendBytes[4 + 11] = HD_DTU.END;
         int n = Send(socket, sendBytes, 16);
         return(n > 0);
     }
     catch (Exception ex)
     {
         LogMg.AddError(ex);
         return(false);
     }
 }
        // 接收客户端的连接
        private static void RecieveAccept()
        {
            while (true)
            {
                try
                {
                    Socket clientSocket = ServerSocket.Accept();

                    clientSocket.BeginReceive(MsgBuffer, 0, MsgBuffer.Length, SocketFlags.None, new AsyncCallback(RecieveCallBack), clientSocket);

                    if (ClientConnectHandler != null)
                    {
                        ClientConnectHandler();  //执行委托
                    }
                }
                catch (Exception ex)
                {
                    LogMg.AddError(ex);
                    DEBUG.ThrowException(ex);
                }
            }
        }
Exemple #25
0
        public void NW_Init()
        {
            try
            {
                allOrg      = SysConfig.orgConfig.Orgs;;
                ALLTestList = SysConfig.DBCJconfig.ListTest;
            }
            catch (Exception ex)
            {
                LogMg.AddError(ex);
                DEBUG.ThrowException(ex);
            }

            NetwaySDK.NW_Init();
            globalOperaCallback = DoOnGlobalOperation;
            realDataCallback    = DoOnRealData;
            alarmDataCallback   = DoOnAlarmData;
            NetwaySDK.NW_SetGlobalOperaCallBack(globalOperaCallback, IntPtr.Zero); //设置全局操作回调
            NetwaySDK.NW_SetRealCallBack(realDataCallback, IntPtr.Zero);           //设置实时数据回调
            NetwaySDK.NW_SetAlarmCallBack(alarmDataCallback, IntPtr.Zero);         //设置警报回调
            NetwaySDK.NW_StartListen("0.0.0.0", 9000);
        }
Exemple #26
0
 /// <summary>
 /// 保存图片到数据库
 /// </summary>
 /// <param name="db"></param>
 /// <param name="stationId"></param>
 /// <param name="imageBytes"></param>
 /// <returns></returns>
 private static bool SavePicture(SWSDataContext db, int stationId, byte[] imageBytes)
 {
     try
     {
         picture_info pic = new picture_info();
         pic.station_id = stationId.ToString();
         pic.title      = "在线抓拍";
         pic.contents   = "在线抓拍";
         pic.username   = "";
         pic.images     = imageBytes;
         pic.updatetime = DateTime.Now;
         pic.source     = "03";
         pic.type       = "01";
         db.picture_info.InsertOnSubmit(pic);
         db.SubmitChanges();
         return(true);
     }
     catch (Exception ex)
     {
         LogMg.AddError(ex);
         return(false);
     }
 }
Exemple #27
0
 /// <summary>
 /// 循环客户端列表,将客户端添加到线程池队列
 /// </summary>
 private static void Work()
 {
     while (true)
     {
         //循环数据库,根据transfer_code找出客户端,
         //将客户端添加到线程池,
         foreach (XML_Org org in SysConfig.orgConfig.Orgs)
         {
             try
             {
                 SWSDataContext db = new SWSDataContext(ConnectStringHelper.GetConnection(SysConfig.userProfile.DbAddress, org.DBName, SysConfig.userProfile.DbUserName, SysConfig.userProfile.DbPassword));
                 添加DTU控制任务(db);
                 添加广岱控制任务(db, org.DBName, org.gdServerCfg);
                 添加广岱透传控制任务(db, org.DBName, org.gdServerCfg);
             }
             catch (Exception ex)
             {
                 LogMg.AddError(ex);
             }
         }
         Thread.Sleep((int)SysConfig.userProfile.GongKuangConfigInterval);
     }
 }
Exemple #28
0
 /// <summary>
 /// 处理接收到的数据
 /// </summary>
 /// <param name="asyncResult"></param>
 public static void HandlerData(Socket socket, byte[] content, int conLen, byte type, string tel)
 {
     try
     {
         if (type == ZG_DTU.HEARTBEAT_DATA)   //心跳数据
         {
             HeartbeatDataHandler(socket);
         }
         else if (type == ZG_DTU.REGISTER_DATA)   //注册数据       貌似这里好像不会出现注册数据了,因为注册数据在第一次注册后就不会再注册了
         {
             DTU_ClientManager.AddClient(tel, socket);
         }
         else if (type == ZG_DTU.USER_DATA)
         {
         }
     }
     catch (Exception ex)
     {
         //LogManager.Add("json字符串:" + data + System.Environment.NewLine + ex.ToString());
         LogMg.AddError(ex);
         DEBUG.ThrowException(ex);
     }
 }
Exemple #29
0
 /// <summary>
 /// 保存客户端发来的设备控制信息    ,把状态字段更新到数据库
 /// </summary>
 /// <param name="db"></param>
 /// <param name="receiveObj"></param>
 private void saveData(SWSDataContext db, C_To_S_Data <CSDataStandard.Transfer.DeviceControl> receiveObj, string stationName)
 {
     try
     {
         //接收客户端数据
         foreach (CSDataStandard.Transfer.DeviceControl item in receiveObj.Data)
         {
             device_control device_control = db.device_control.Where(c => c.id == item.DeviceControlId).SingleOrDefault();
             if (device_control != null)
             {
                 device_control.execute_result = item.ExecuteResult;
             }
         }
         db.SubmitChanges();
         //输出消息
         // string msg = string.Format("保存【{0}】客户端发送来的{1}行设备控制执行结果", stationName, receiveObj.Data.Count);
         // lb_msg.BeginInvoke(new Action<string>(printMsg), msg);
     }
     catch (Exception ex)
     {
         LogMg.AddError(ex);
     }
 }
Exemple #30
0
        private void dbToXML()
        {
            DateTime start = DateTime.Now;

            LogMg.AddDebug("准备开始从数据库生成站点和检测点配置");
            //if (SysConfig.DTU_StationConfig.GenerateFromDbToXML() == true)
            if (SysConfig.DTU_StationConfig.GenerateFromDbToXML() == true && SysConfig.GD_Config.GenerateConfig() == true)
            {
                LogMg.AddDebug("从数据库生成站点和检测点配置到XML成功");
                //MessageBox.Show("");
                SysConfig.ReadConfig();
                DTU_ClientManager.Update();
                BeginInvoke(new Action <String>(showMessageBox), "已成功从数据库生成配置");
            }
            else
            {
                LogMg.AddDebug("从数据库生成站点和检测点配置失败");
                BeginInvoke(new Action <String>(showMessageBox), "从数据库生成站点和检测点配置失败,请查看日志文件");
            }
            DateTime end = DateTime.Now;

            LogMg.AddInfo("生成xml并读取配置到内存耗时:" + DateUtil.datediff(start, end));
        }