Exemple #1
0
        /// <summary>
        /// 工厂方法:根据信号机参数信息,生产出对应的信号机
        /// </summary>
        /// <param name="prop"></param>
        /// <returns></returns>
        public static SignalController buildController(SignalProp prop)
        {
            if (null == prop)
            {
                return(null);
            }

            SignalController ctrl;

            switch (prop.Type)
            {
            // 旗骏
            case 1:
                ctrl = new QJController(prop);
                break;

            // 易华录
            case 4:
                ctrl = new EHLController(prop);
                break;

            // 鑫通
            case 5:
                ctrl = new XTController(prop);
                break;

            default:
                ctrl = null;
                break;
            }

            return(ctrl);
        }
Exemple #2
0
 public QJController(SignalProp prop) : base(prop)
 {
     tcpClientSocket1              = new TCPClientSocket();
     tcpClientSocket1.Breaken      = true;
     tcpClientSocket1.BreakSec     = 5;
     tcpClientSocket1.DataArrival += new TCPClientSocket.DataArrivalEventHandler(tcpClientSocket1_DataArrival);
 }
Exemple #3
0
        public XTController(SignalProp prop) : base(prop)
        {
            this.Prop = prop;
            Option option = CommonUtils.LoadOption();

            gettrafficlights_url = "http://" + option.XtAddress + "/jtd/cxf/rest/sigservice/gettrafficlights/signumber.json";                         //信号机编号:216 获取实时状态单次
            docommand_url        = "http://" + prop.Ip + ":" + option.XtAddress + "/jtd/cxf/rest/sigservice/docommand/signumber/33.json";             //信号机编号:216 执行黄闪命令
            gettrafficlights_url = "http://" + prop.Ip + ":" + option.XtAddress + "/jtd/cxf/rest/sigservice/gettrafficlights/signumber.json";         //信号机编号:216 获取实时状态单次
            excutecontorl_url    = "http://" + prop.Ip + ":" + option.XtAddress + "/jtd/cxf/rest/sigservice/excutecontrol/signumber/controlmsg.json"; //信号机编号:216 执行特勤控制
        }
Exemple #4
0
        public static SignalProp getSigProp(string signalId, List <SignalProp> sigList)
        {
            SignalProp prop = null;// new SignalProp();

            foreach (SignalProp p in sigList)
            {
                if (signalId.Equals(p.SignalID.ToUpper()))
                {
                    prop = p;
                    break;
                }
            }
            return(prop);
        }
Exemple #5
0
        public static SignalProp getSigPropByName(string signalName, List <SignalProp> sigList)
        {
            SignalProp prop = null;// new SignalProp();

            foreach (SignalProp p in sigList)
            {
                if (signalName.Equals(p.SignalName))
                {
                    prop = p;
                    break;
                }
            }
            return(prop);
        }
Exemple #6
0
 /// <summary>
 /// 解析信号机在界面上的位置
 /// </summary>
 /// <param name="posList"></param>
 /// <param name="sigList"></param>
 public static void parseSigPosList(List <SignalPos> posList, List <SignalProp> sigList)
 {
     foreach (SignalPos p in posList)
     {
         SignalProp prop = getSigProp(p.LampId, sigList);
         if (null == prop)
         {
             prop          = new SignalProp();
             prop.SignalID = p.LampId;
             sigList.Add(prop);
         }
         int idx = (p.Compass - 1) * 4 + p.Dir - 1;
         //Trace.WriteLine("parse prop: " + idx + ";  " + prop.ToString());
         prop.Pos[(p.Compass - 1) * 4 + p.Dir - 1] = new Point(p.X, p.Y);
     }
 }
Exemple #7
0
 /// <summary>
 /// 解析信号机在界面上的角度
 /// </summary>
 /// <param name="angList"></param>
 /// <param name="sigList"></param>
 public static void parseSigAngList(List <SignalAng> angList, List <SignalProp> sigList)
 {
     foreach (SignalAng a in angList)
     {
         SignalProp prop = getSigProp(a.LampId, sigList);
         if (null == prop)
         {
             prop          = new SignalProp();
             prop.SignalID = a.LampId;
             sigList.Add(prop);
         }
         prop.Angle[0] = a.EAng;
         prop.Angle[1] = a.SAng;
         prop.Angle[2] = a.WAng;
         prop.Angle[3] = a.NAng;
     }
 }
 public SignalController(SignalProp prop)
 {
     this.prop = prop;
 }