Ejemplo n.º 1
0
        public JsonMessage OnOrOff(string crossingId, string onOrOff, string ctrlName)
        {
            var msg = new JsonMessage {
                Success = false, Message = "parameter error"
            };
            dynamic list     = CrossingService.GetIP_IsOnline(crossingId);
            bool    isOnline = list.IsOnline;
            string  ip       = list.CrsIp;

            if (isOnline)
            {
                Socket    clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
                IPAddress ipAddress    = IPAddress.Parse(ip);
                try
                {
                    TcpConn.ConnectWithTimeout(clientSocket, new IPEndPoint(ipAddress, 5000), 1000);

                    msg.Success = true;
                    msg.Message = "Socket连接成功";
                }
                catch
                {
                    msg.Success = false;
                    msg.Message = "Socket连接失败";
                    return(msg);
                }
                try
                {
                    string send = onOrOff;
                    var    data = Common.StrToHexByte(send);
                    clientSocket.Send(data); // Sends some data
                    //Thread.Sleep(500);
                    var buffer = new byte[6];
                    clientSocket.Receive(buffer); // Receives some data back (blocks execution)
                    var response = BitConverter.ToString(buffer, 0);
                    msg.Success = true;
                    msg.Message = response;
                    msg.Title   = ctrlName;
                }
                catch (Exception e)
                {
                    msg.Success = false;
                    msg.Message = ip + "通讯网络错误!" + e.Message;
                    msg.Title   = ctrlName;
                }
                //  clientSocket.Shutdown(SocketShutdown.Both);
                clientSocket.Close();
                clientSocket.Dispose();
            }
            else
            {
                msg.Success = false;
                msg.Message = ip + "设备离线!";
                msg.Title   = ctrlName;
            }
            //  InertLogs(list.CrsName, msg.Title, msg.Message,ipAddress,browser);
            return(msg);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 设置电池合闸门限电压
        /// </summary>
        /// <param name="crossingId"></param>
        /// <param name="thresholdVoltage"></param>

        /// <returns></returns>
        public JsonMessage ThresholdVoltage(string crossingId, string thresholdVoltage)
        {
            var msg = new JsonMessage {
                Success = false, Message = "parameter error"
            };

            dynamic list     = CrossingService.GetIP_IsOnline(crossingId);
            bool    isOnline = list.IsOnline;
            string  ip       = list.CrsIp;

            if (isOnline)
            {
                Socket    clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
                IPAddress ipAddress    = IPAddress.Parse(ip);
                try
                {
                    TcpConn.ConnectWithTimeout(clientSocket, new IPEndPoint(ipAddress, 5000), 1000);

                    msg.Success = true;
                    msg.Message = "Socket连接成功";
                }
                catch
                {
                    msg.Success = false;
                    msg.Message = "Socket连接失败";
                    return(msg);
                }
                try
                {
                    float  f = float.Parse(thresholdVoltage);
                    byte[] c = BitConverter.GetBytes(f);

                    string dd = "EF EF 07 1B " + Common.ByteToHexStr2(c).TrimEnd(' ');

                    var    sum    = dd.Split(' ').Select(i => Convert.ToInt32(i, 16)).Sum();
                    var    s      = Convert.ToString(sum, 16);
                    var    result = s.Substring(1, s.Length - 1);
                    string send   = dd + result;
                    var    aa     = Common.StrToHexByte(send);
                    //byte[] temp = { 0xEF, 0xEF, 0x04, 0x01, 0x01, 0xE4 };
                    clientSocket.Send(aa); // Sends some data
                    //Thread.Sleep(500);
                    var buffer = new byte[9];
                    clientSocket.Receive(buffer);  // Receives some data back (blocks execution)
                    var response = BitConverter.ToString(buffer, 0);
                    msg.Success = true;
                    msg.Message = ip + "设置电池合闸门限电压:" + f + "伏成功" + response;
                    msg.Title   = "设置电池合闸门限电压";
                }
                catch (Exception e)
                {
                    msg.Success = false;
                    msg.Message = ip + ":通讯网络错误!" + e.Message;
                    msg.Title   = "设置电池合闸门限电压";
                }
                // clientSocket.Shutdown(SocketShutdown.Both);
                clientSocket.Close();
                clientSocket.Dispose();
            }
            else
            {
                msg.Success = false;
                msg.Message = ip + "设备离线!";
                msg.Title   = "设置电池合闸门限电压";
            }
            //InertLogs(list.CrsName, msg.Title, msg.Message);
            return(msg);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 关闭报警
        /// </summary>
        /// <param name="crossingId"></param>
        /// <param name="closeAlarm"></param>
        /// <returns></returns>
        public JsonMessage CloseAlarm(string crossingId, string closeAlarm)
        {
            var msg = new JsonMessage {
                Success = false, Message = "parameter error"
            };

            dynamic list     = CrossingService.GetIP_IsOnline(crossingId);
            bool    isOnline = list.IsOnline;
            string  ip       = list.CrsIp;

            if (closeAlarm == "1" || closeAlarm.ToLower() == "true")
            {
                if (isOnline)
                {
                    Socket    clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
                    IPAddress ipAddress    = IPAddress.Parse(ip);
                    try
                    {
                        TcpConn.ConnectWithTimeout(clientSocket, new IPEndPoint(ipAddress, 5000), 1000);

                        msg.Success = true;
                        msg.Message = "Socket连接成功";
                    }
                    catch
                    {
                        msg.Success = false;
                        msg.Message = "Socket连接失败";
                        return(msg);
                    }
                    try
                    {
                        string send = "EF EF 04 15 00 F7";

                        var data = Common.StrToHexByte(send);
                        clientSocket.Send(data);
                        //Thread.Sleep(500);
                        var buffer = new byte[11];
                        clientSocket.Receive(buffer); // Receives some data back (blocks execution)
                        var response = BitConverter.ToString(buffer, 0);
                        msg.Success = true;
                        msg.Message = ip + "报警信息关闭成功" + response;
                        msg.Title   = "关闭该次报警提醒";
                    }
                    catch
                    {
                        // clientSocket.Shutdown(SocketShutdown.Both);
                        clientSocket.Close();
                        clientSocket.Dispose();
                        msg.Success = false;
                        msg.Message = ip + "通讯网络错误!";
                        msg.Title   = "关闭该次报警提醒";
                        return(msg);
                    }
                    // clientSocket.Shutdown(SocketShutdown.Both);
                    clientSocket.Close();
                    clientSocket.Dispose();
                }
                else
                {
                    msg.Success = false;
                    msg.Message = ip + "设备离线!";
                    msg.Title   = "关闭该次报警提醒";
                }
            }
            else
            {
                msg.Success = false;
                msg.Message = ip + "关闭该次报警提醒失败!";
                msg.Title   = "关闭该次报警提醒";
            }
            return(msg);
        }