格式转换

格式转换API

说明:

在这里插入图片描述

  • modelutil包直接拷贝到项目里,InitParamHelper类中,有以下工具方法

  • 完整目录结构如下:

在这里插入图片描述

一、序列化

5.1 配置参数

5.1.2 系统参数
5.1.3 区域参数
5.1.5 路口参数(*)
5.1.6 信号机参数
5.1.7 信号灯组参数
5.1.8 检测器参数
5.1.9 车道参数
5.1.10 相位参数
 public static string PhaseParamMessage2XML(string token,string seq ,List<PhaseParam> phaseParams)
     
//PhaseParam
public PhaseParam(string crossID, string phaseNo, string phaseName, string atrribute, LaneNoList laneNoList, PreDirList preDirList)
//LaneNoList
public LaneNoList(List<string> laneNo)
//PreDirList
public PreDirList(List<string> direction)
5.1.11 阶段参数
public static string StageParamMessage2XML(string token, string seq, List<StageParam> stageParams)
    //stageParams
     public StageParam(string crossID, string stageNo, string stageName, string attribute, string green, string redYellow, string yellow, string allRed, PhaseNoList phaseNoList)
     //PhaseNoList
      public PhaseNoList(List<string> phaseNo)
5.1.12 配时方案参(*)
 public static string PlanParamMessage2XML(string token, string seq, List<PlanParam> planParams)
     List<PlanParam> planParams
     //PlanParam
    public PlanParam(string crossID, string planNo, string cycleLen, string coordPhaseNo, string offSet, StageNoList stageNoList)
     //StageNoList
	 public StageNoList(List<string> stageNo)
5.1.13 日计划配置信息(* 定制)
public static string DayPlanParamMessage2XML(string token, string seq, string crossID,string dayPlanNo, List<DayPlanPararm> dayPlanPararms)
  • dayPlanPararms参数构造
  • 以一个DayPlanParam,两个TimeInterval为例子
//List<DayPlanPararm> dayPlanPararms,以一个DayPlanParam,两个TimeInterval为例子
//先构建 dayPlanPararms
List<DayPlanPararm> dayPlanPararmlist = new List<DayPlanPararm>();

//创建timeintervallist
List<TimeInterval> timeIntervalList = new List<TimeInterval>();
//构建timeInterval1放入timeIntervalList集合中
//第一个TimeInterval
TimeInterval timeInterval1 = new TimeInterval(timeIntervalNo, startTime, endTime, planNo);
//第一个TimeInterval
TimeInterval timeInterval2 = new TimeInterval(timeIntervalNo, startTime, endTime, planNo);
//放入集合timeIntervalList中
timeIntervalList.Add(timeInterval1);
timeIntervalList.Add(timeInterval2);

//再将构建好的TimeInterval放入List<DayPlanPararm> dayPlanPararms中
DayPlanPararm dayPlanPararm = new DayPlanPararm(crossID,dayPlanNo,timeIntervalList);

dayPlanPararmlist.Add(dayPlanPararm);
//至此dayPlanPararmlist参数构建好了
5.1.14 调度表配置信息(* 定制)

5.2 运行信息

5.2.1 系统状态
5.2.2 区域状态
5.2.3 路口状态
5.2.4 信号机故障
5.2.5 路口控制方式
 public static string CrossControlModel2XML(string crossId,string value,string objName,string id,string no)
5.2.6 路口周期(*)
5.2.7 路口阶段(*)
5.2.8 路口相位灯态
public static string CrossPhassLampStatus2Xml(string 路口编号,string 控制方式,string 控制方式,sting[] 相位灯态表)
5.2.9 路口控制方案
5.2.[5-6-7-9]合并方案
API:
  public static string CrossMessage2XML(string token, string seq, string crossID, string controlMode, string planNo,string startTime, string curTime ,string lastCycleLen,string curCycleRemainLen,string lastStageNo,string lastStageLen ,string curStageNo,string curStageLen,string curStageRemainLen)
        
案例:  
string xml=InitParamHelper.CrossMessage2XML("token", "seq", "crossID", "controlMode", "planNo", "startTime", "curTime", "lastCycle", "curCyckeRemain", "lastStageNo", "curStageNo", "curStageNo", "curStageLen","curStageRemainLen");

5.2.10 路口交通流数据

5.3 控制命令

5.3.1 配置参数及运行信息通知、查询命令
5.3.2 指定控制方式
5.3.3 指定控制方案
5.3.4 锁定交通流向(*)
5.3.5 解锁交通流向(*)
5.3.6 路口周期、阶段、相位灯态、交通流数据上传设置
5.3.7 临时(优化)方案设置(*)(定制)
5.3.8 交通流数据获取推送设置 (*)
5.3.9 路口故障推送设置 (*)
5.3.10 设置路口阶段配置(*定制)
5.3.11 设置路口方案配置(*定制)
5.3.12 设置日计划方案配置(*定制)
5.3.13 设置调度计划方案配置(*定制)
5.4 通信方式
5.5 对接计划安排:

登录

public static string LoginMessage2XML(string 用户名,string 密码)

心跳

 public static string HeartBeat2XML(string token, string order, string name, string sDO_HeartBeat)
     参数对照:
     <Token>786d7a313233343536</Token> 
     <Operation order="X" name="notify"> 
        <SDO_HeartBeat/> 
    </Operation>  
     

超时请求

public static string TimeOut2XML(string token ,string 超时时间)

二、反序列化

public static Object Deserialize(string strXml, Type type)

案例:

​ 将xml文本中的token与超时时间取出来

TimeOut.XML

<?xml version="1.0" encoding="utf - 8"?>
<Message>
    <Version>1.0</Version>
    <Token>123323</Token>
    <From>
        <Address>
            <Sys>FICP</Sys>
            <SubSys />
            <Instance />
        </Address>
    </From>
    <To>
        <Address>
            <Sys>TICP</Sys>
            <SubSys />
            <Instance />
        </Address>
    </To>
    <Type>REQUEST</Type>
    <Seq />
    <Body>
        <Operation Order="1" Name="Set">
            <SDO_TimeOut>100</SDO_TimeOut>
        </Operation>
    </Body>
</Message>

从TimeOut.XML中取出token

  • 每个xml文本需要选择与之对应的类
  • 如: TimeOut.XML与TimeOut类对应
//取token与SDO_TimeOut
TimeOut timeOut = new TimeOut();
timeOut=(TimeOut)Classl2XMLHelper.Deserialize(xml, timeOut.GetType());
string SDO_TimeOut = timeOut.Body.Operation.SDO_TimeOut;
string token = timeOut.Token;


/取token与SDO_TimeOut
TimeOut timeOut = new TimeOut();
timeOut=(TimeOut)Classl2XMLHelper.Deserialize(xml, timeOut.GetType());
string SDO_TimeOut = timeOut.Body.Operation.SDO_TimeOut;
string token = timeOut.Token;

版本日志

  • 1.3

    相位改动

    阶段改动

    配时改动

  • 1.2_部分5.1修复版本日志

    1.修复了CrossParamMessage2XML参数错误
    2.修复PreDirList==>PedDirList命名错误问题
    3.PhaseParam==>所以相位都放在一个message中

  • 1.2.1版本

    Address类中

    ​ public string SubSys { get; set; }=0;
    public string Instance { get; set; }=0;
    改为
    public string SubSys { get; set; }
    public string SubSys { get; set; }

    增加 信号机参数API
    public static string CrossParamMessage2XML(string token, string seq, string crossID,string crossName,string feature,string isKey, List<string> detIDList, List<string> laneNoList, List<string> phaseNoList, List<string> stageNoList, List<string> planNoList)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

汪随安

朝看天色暮看云行也思君坐也思君

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值