# 資料格式交換 ### 流程 **1.[API端]:使用者要下傳的內容 2.[資料整理端]:將資料表資料整理成協定指令所需內容 3.[指令轉換端]:將接收到的資料轉換成協定指令** ## 5F14_設定路口時制計畫之基本參數 | 資料表: tc_plan_info * [API端]->[資料整理端] ```python { "deviceId": "TC003", //設備ID "planId": 1, //時制計畫編號 "phaseOrder":"00" //時相排序編號 } ``` * [資料整理端]->[指令轉換端] ```python { "topic": "5F14", //指令碼 "UUID": "7fdd595f-bedd-48fe-9e70-b43b9db6d714", //唯一識別碼 "dataTime": "2024-07-23T09:55:08.903553", //指令下傳時間 "deviceId": "TC003", //設備ID "planId": 1, //時制計畫編號 "subPhaseCount": 2, //綠燈分相數目 "subPhaseContent": [ { "subPhaseId": 1, //第N個綠燈分相數 "minGreen": 0, //最小綠燈秒數 "maxGreen": 999, //最大綠燈秒數 "yellow": 5, //黃燈秒數 "allRed": 10, //紅燈秒數 "pedGreenFlash": 0, //行人綠閃秒數 "pedRed": 0 //行人紅燈秒數 }, { "subPhaseId": 2, //第N個綠燈分相數 "minGreen": 0, //最小綠燈秒數 "maxGreen": 999, //最大綠燈秒數 "yellow": 5, //黃燈秒數 "allRed": 10, //紅燈秒數 "pedGreenFlash": 5, //行人綠閃秒數 "pedRed": 5 //行人紅燈秒數 }, ] } ``` ## 5F15_設定時制計畫內容 | 資料表: tc_plan_info * [API端]->[資料整理端] ```python { "deviceId": "TC003", //設備ID "planId": 1, //時制計畫編號 "phaseOrder":"00" //時相排序編號 } ``` * [資料整理端]->[指令轉換端] ```python { "topic": "5F15", //指令碼 "UUID": "2c319230-d71b-49ce-9ae6-93b3abc979d0", //唯一識別碼 "dataTime": "2024-07-23T09:55:08.892543", //指令下傳時間 "deviceId": "TC003", //設備ID "content": { "planId": 1, //時制計畫編號 "direct": 0, //基準方向(預設為0,北向) "phaseOrder": 0, //時相排序編號 "subPhaseCount": 2, //綠燈分相數目 "green": [ //N個綠燈秒數 15, //第一個綠燈秒數 0 //第二個綠燈秒數 ], "cycleTime": 30, //週期秒數 "offset": 0 //時差秒數 } } ``` ## 5F44 + 5F45 + 5FC4 + 5FC5 時制計畫查詢 * [API端]->[資料整理端] ```python { "deviceId": "TC003", //設備ID "planId": 1, //時制計畫編號 } ``` * [資料整理端]->[指令轉換端] ```python { "topic": "5F45", //指令碼 "UUID": "7fdd595f-bedd-48fe-9e70-b43b9db6d714", //唯一識別碼 "dataTime": "2024-07-23T09:55:08.903553", //指令下傳時間 "deviceId": "TC003", //設備ID "planId": 1, //時制計畫編號 } ``` * [指令轉換端]->[資料整理端] ```python { "deviceId": "TC003", //設備ID "content": [ { "planId": 1, //時制計畫編號 "phaseOrder": "00", //時相排序編號 "offset": 0, //時差秒數 "cycleTime": 275, //週期秒數 "recviceTime": "2024-07-26T11:16:24+0800", //資料接收時間 "subPhaseCount": 2, //分相數目 "message": "ok", //預留訊息,若錯誤時則回傳錯誤訊息 "subPhases": [ { "subPhaseId": 1, //第N個綠燈分相數 "minGreen": 0, //最小綠燈秒數 "maxGreen": 999, //最大綠燈秒數 "green": 15, //綠燈秒數 "yellow": 5, //黃燈秒數 "allRed": 10, //紅燈秒數 "pedGreenFlash": 0, //行人綠閃秒數 "pedRed": 0 //行人紅燈秒數 }, { "subPhaseId": 1, //第N個綠燈分相數 "minGreen": 0, //最小綠燈秒數 "maxGreen": 999, //最大綠燈秒數 "green": 15, //綠燈秒數 "yellow": 5, //黃燈秒數 "allRed": 10, //紅燈秒數 "pedGreenFlash": 0, //行人綠閃秒數 "pedRed": 0 //行人紅燈秒數 }, ] } ] } ``` ## 5F16_設定一般日時段型態 | 資料表: tc_segment + tc_segment_info * [API端]->[資料整理端] ```python { "deviceId":"TC003", //設備ID "segmentType":"1" //時段型態碼,整數(1~7)(一般日) } ``` * [資料整理端]->[指令轉換端] ```python { "deviceId": "TC003", //設備ID "topic": "5F16", //指令碼 "segmentType": 1, //時段型態碼,整數(1~7)(一般日) "UUID": "3103f2ed-3523-4ff3-b5c9-66a70c5255bf", //唯一識別碼 "content": [ { "segmentCount": 5, //N個排程時段分段數 "beginTime": [ { "subSegmentId": 1, //第一個時段數 "time": "00:00", //第一個分段開始時間 "planId": 1 //第一個分段執行之時制計畫編號 }, { "subSegmentId": 2, //第二個時段數 "time": "01:01", //第二個分段開始時間 "planId": 2 //第二個分段執行之時制計畫編號 }, { "subSegmentId": 3, //第三個時段數 "time": "01:30", //第三個分段開始時間 "planId": 3 //第三個分段執行之時制計畫編號 }, { "subSegmentId": 4, //第四個時段數 "time": "02:30", //第四個分段開始時間 "planId": 1 //第四個分段執行之時制計畫編號 }, { "subSegmentId": 5, //第五個時段數 "time": "04:30", //第五個分段開始時間 "planId": 3 //第五個分段執行之時制計畫編號 } ], "numWeekDay": 2, //週內日執行同時段型態之總天數,(整數1~14) "weekDay": [ //週內日,整數(1~7,11~17)(1:星期一 11:隔週休星期一|2:星期二 12:隔週休星期二|3:星期三 13:隔週休星期三|4:星期四 14:隔週休星期四|5:星期五 15:隔週休星期五|6:星期六 16:隔週休星期六|7:星期日 17:隔週休星期日) 3, //星期三 4 //星期四 ] } ] } ``` ## 5F46 + 5FC6 查詢一般日時段型態之設定內容 | 資料表: tc_segment + tc_segment_info * [API端]->[資料整理端] ```python { "deviceId": "TC003", //設備ID "segmentType": 1, //時段型態碼,整數(1~7)(一般日),若SegmentType= FF H 表示用WeekDay 查詢。 "weekDay": "FF" //週內日,整數(1~7,11~17)(1:星期一 11:隔週休星期一|2:星期二 12:隔週休星期二|3:星期三 13:隔週休星期三|4:星期四 14:隔週休星期四|5:星期五 15:隔週休星期五|6:星期六 16:隔週休星期六|7:星期日 17:隔週休星期日),當SegmentType= FF H,此參數才有效,否則以FF H 填入(即當SegmentType 不FF H 時,表示用SegmentType 查詢)。 } ``` * [資料整理端]->[指令轉換端] ```python { "topic": "5F46", //指令碼 "UUID": "2c319230-d71b-49ce-9ae6-93b3abc979d0", //唯一識別碼 "dataTime": "2024-07-23T09:55:08.892543", //指令下傳時間 "deviceId": "TC003", //設備ID "segmentType": 1, //時段型態碼,整數(1~7)(一般日),若SegmentType= FF H 表示用WeekDay 查詢。 "weekDay": "FF" //週內日,整數(1~7,11~17)(1:星期一 11:隔週休星期一|2:星期二 12:隔週休星期二|3:星期三 13:隔週休星期三|4:星期四 14:隔週休星期四|5:星期五 15:隔週休星期五|6:星期六 16:隔週休星期六|7:星期日 17:隔週休星期日),當SegmentType= FF H,此參數才有效,否則以FF H 填入(即當SegmentType 不FF H 時,表示用SegmentType 查詢)。 } ``` * [指令轉換端]->[資料整理端] ```python { "deviceId": "TC003", //設備ID "topic": "5FC6", //指令碼 "UUID": "3103f2ed-3523-4ff3-b5c9-66a70c5255bf", //唯一識別碼 "content": [ { "segmentType": 1, //時段型態碼,整數(1~7)(一般日) "segmentCount": 5, //N個排程時段分段數 "beginTime": [ { "subSegmentId": 1, //第一個時段數 "time": "00:00", //第一個分段開始時間 "planId": 1 //第一個分段執行之時制計畫編號 }, { "subSegmentId": 2, //第二個時段數 "time": "01:01", //第二個分段開始時間 "planId": 2 //第二個分段執行之時制計畫編號 }, { "subSegmentId": 3, //第三個時段數 "time": "01:30", //第三個分段開始時間 "planId": 3 //第三個分段執行之時制計畫編號 }, { "subSegmentId": 4, //第四個時段數 "time": "02:30", //第四個分段開始時間 "planId": 1 //第四個分段執行之時制計畫編號 }, { "subSegmentId": 5, //第五個時段數 "time": "04:30", //第五個分段開始時間 "planId": 3 //第五個分段執行之時制計畫編號 } ], "numWeekDay": 2, //週內日執行同時段型態之總天數,(整數1~14) "weekDay": [ //週內日,整數(1~7,11~17)(1:星期一 11:隔週休星期一|2:星期二 12:隔週休星期二|3:星期三 13:隔週休星期三|4:星期四 14:隔週休星期四|5:星期五 15:隔週休星期五|6:星期六 16:隔週休星期六|7:星期日 17:隔週休星期日) 3, //星期三 4 //星期四 ] } ] } ``` ## 5F17_設定特殊日期段時段型態 | 資料表: tc_segment + tc_segment_info * [API端]->[資料整理端] ```python { "deviceId":"TC003", //設備ID "segmentType":"8" //時段型態碼,整數(8~20)(特殊日) } ``` * [資料整理端]->[指令轉換端] ```python { "deviceId": "TC003", //設備ID "topic": "5F17", //指令碼 "UUID": "3103f2ed-3523-4ff3-b5c9-66a70c5255bf", //唯一識別碼 "content": [ { "startDate": "112/07/01", //特殊日期段之起始日期,資料結束日期可為同一日(民國年) "endDate": "112/07/30", //特殊日期段之結束日期(民國年) "segmentType": 8, //時段型態碼,整數(8~20)(特殊日) "segmentCount": 5, //N個排程時段分段數 "beginTime": [ { "segmentCount": 1, //第一個時段數 "time": "00:00", //第一個分段開始時間 "planId": 1 //第一個分段執行之時制計畫編號 }, { "segmentCount": 2, //第二個時段數 "time": "01:01", //第二個分段開始時間 "planId": 2 //第二個分段執行之時制計畫編號 }, { "segmentCount": 3, //第三個時段數 "time": "01:30", //第三個分段開始時間 "planId": 3 //第三個分段執行之時制計畫編號 }, { "segmentCount": 4, //第四個時段數 "time": "02:30", //第四個分段開始時間 "planId": 1 //第四個分段執行之時制計畫編號 }, { "segmentCount": 5, //第五個時段數 "time": "04:30", //第五個分段開始時間 "planId": 3 //第五個分段執行之時制計畫編號 } ] } ] } ``` ## 5F47 + 5FC7_查詢特殊日期段時段型態之設定內容 | 資料表: tc_segment + tc_segment_info * [API端]->[資料整理端] ```python { "deviceId": "TC003", //設備ID "segmentType": "8" //時段型態碼,整數(8~20)(特殊日) } ``` * [資料整理端]->[指令轉換端] ```python { "topic": "5F47", //指令碼 "UUID": "2c319230-d71b-49ce-9ae6-93b3abc979d0", //唯一識別碼 "dataTime": "2024-07-23T09:55:08.892543", //指令下傳時間 "deviceId": "TC003", //設備ID "segmentType":"8", //時段型態碼,整數(8~20)(特殊日) } ``` * [資料整理端]->[指令轉換端] ```python { "deviceId": "TC003", //設備ID "topic": "5FC7", //指令碼 "UUID": "3103f2ed-3523-4ff3-b5c9-66a70c5255bf", //唯一識別碼 "content": [ { "startDate": "112/07/01", //特殊日期段之起始日期,資料結束日期可為同一日(民國年) "endDate": "112/07/30", //特殊日期段之結束日期(民國年) "segmentType": 8, //時段型態碼,整數(8~20)(特殊日) "segmentCount": 5, //N個排程時段分段數 "beginTime": [ { "segmentCount": 1, //第一個時段數 "time": "00:00", //第一個分段開始時間 "planId": 1 //第一個分段執行之時制計畫編號 }, { "segmentCount": 2, //第二個時段數 "time": "01:01", //第二個分段開始時間 "planId": 2 //第二個分段執行之時制計畫編號 }, { "segmentCount": 3, //第三個時段數 "time": "01:30", //第三個分段開始時間 "planId": 3 //第三個分段執行之時制計畫編號 }, { "segmentCount": 4, //第四個時段數 "time": "02:30", //第四個分段開始時間 "planId": 1 //第四個分段執行之時制計畫編號 }, { "segmentCount": 5, //第五個時段數 "time": "04:30", //第五個分段開始時間 "planId": 3 //第五個分段執行之時制計畫編號 } ] } ] } ``` ## 5F2F_設定號誌控制器時相排列 | 資料表: tc_step_info * [API端]->[資料整理端] ```python { "deviceId": "TC003", //設備ID "phaseOrder": "00" //時相類型編號 } ``` * [資料整理端]->[指令轉換端] ```python { "topic": "5F2F", "UUID": "cda18bec-023c-470b-920a-6c28144c6078", "dataTime": "2024-09-12T10:22:05.663631", "deviceId": "TC003", "phaseOrder": 0, "signalCount": 4, "signalMap": [1, 0, 1, 0, 1, 0, 1, 0], "subPhaseCount": 2, "content": [ { "subPhaseId": 1, "stepCount": 5, "StepInfos": [ { "step": 1, "signalStatus": [ { "allred": 0, "yellow": 0, "green": 1, "turnleft": 0, "straight": 0, "turnright": 0, "pedgreen": 1, "pedgreenflash": 0, "pedred": 0 }, { "allred": 1, "yellow": 0, "green": 0, "turnleft": 0, "straight": 0, "turnright": 0, "pedgreen": 0, "pedgreenflash": 0, "pedred": 1 }, { "allred": 0, "yellow": 0, "green": 1, "turnleft": 0, "straight": 0, "turnright": 0, "pedgreen": 1, "pedgreenflash": 0, "pedred": 0 }, { "allred": 1, "yellow": 0, "green": 0, "turnleft": 0, "straight": 0, "turnright": 0, "pedgreen": 0, "pedgreenflash": 0, "pedred": 1 } ] }, { "step": 2, "signalStatus": [ { "allred": 0, "yellow": 0, "green": 1, "turnleft": 0, "straight": 0, "turnright": 0, "pedgreen": 0, "pedgreenflash": 1, "pedred": 0 }, { "allred": 1, "yellow": 0, "green": 0, "turnleft": 0, "straight": 0, "turnright": 0, "pedgreen": 0, "pedgreenflash": 0, "pedred": 1 }, { "allred": 0, "yellow": 0, "green": 1, "turnleft": 0, "straight": 0, "turnright": 0, "pedgreen": 0, "pedgreenflash": 1, "pedred": 0 }, { "allred": 1, "yellow": 0, "green": 0, "turnleft": 0, "straight": 0, "turnright": 0, "pedgreen": 0, "pedgreenflash": 0, "pedred": 1 } ] }, { "step": 3, "signalStatus": [ { "allred": 0, "yellow": 0, "green": 1, "turnleft": 0, "straight": 0, "turnright": 0, "pedgreen": 0, "pedgreenflash": 0, "pedred": 1 }, { "allred": 1, "yellow": 0, "green": 0, "turnleft": 0, "straight": 0, "turnright": 0, "pedgreen": 0, "pedgreenflash": 0, "pedred": 1 }, { "allred": 0, "yellow": 0, "green": 1, "turnleft": 0, "straight": 0, "turnright": 0, "pedgreen": 0, "pedgreenflash": 0, "pedred": 1 }, { "allred": 1, "yellow": 0, "green": 0, "turnleft": 0, "straight": 0, "turnright": 0, "pedgreen": 0, "pedgreenflash": 0, "pedred": 1 } ] }, { "step": 4, "signalStatus": [ { "allred": 0, "yellow": 1, "green": 0, "turnleft": 0, "straight": 0, "turnright": 0, "pedgreen": 0, "pedgreenflash": 0, "pedred": 1 }, { "allred": 1, "yellow": 0, "green": 0, "turnleft": 0, "straight": 0, "turnright": 0, "pedgreen": 0, "pedgreenflash": 0, "pedred": 1 }, { "allred": 0, "yellow": 1, "green": 0, "turnleft": 0, "straight": 0, "turnright": 0, "pedgreen": 0, "pedgreenflash": 0, "pedred": 1 }, { "allred": 1, "yellow": 0, "green": 0, "turnleft": 0, "straight": 0, "turnright": 0, "pedgreen": 0, "pedgreenflash": 0, "pedred": 1 } ] }, { "step": 5, "signalStatus": [ { "allred": 1, "yellow": 0, "green": 0, "turnleft": 0, "straight": 0, "turnright": 0, "pedgreen": 0, "pedgreenflash": 0, "pedred": 1 }, { "allred": 1, "yellow": 0, "green": 0, "turnleft": 0, "straight": 0, "turnright": 0, "pedgreen": 0, "pedgreenflash": 0, "pedred": 1 }, { "allred": 1, "yellow": 0, "green": 0, "turnleft": 0, "straight": 0, "turnright": 0, "pedgreen": 0, "pedgreenflash": 0, "pedred": 1 }, { "allred": 1, "yellow": 0, "green": 0, "turnleft": 0, "straight": 0, "turnright": 0, "pedgreen": 0, "pedgreenflash": 0, "pedred": 1 } ] } ] }, { "subPhaseId": 2, "stepCount": 5, "StepInfos": [ { "step": 1, "signalStatus": [ { "allred": 1, "yellow": 0, "green": 0, "turnleft": 0, "straight": 0, "turnright": 0, "pedgreen": 0, "pedgreenflash": 0, "pedred": 1 }, { "allred": 0, "yellow": 0, "green": 1, "turnleft": 0, "straight": 0, "turnright": 0, "pedgreen": 1, "pedgreenflash": 0, "pedred": 0 }, { "allred": 1, "yellow": 0, "green": 0, "turnleft": 0, "straight": 0, "turnright": 0, "pedgreen": 0, "pedgreenflash": 0, "pedred": 1 }, { "allred": 0, "yellow": 0, "green": 1, "turnleft": 0, "straight": 0, "turnright": 0, "pedgreen": 1, "pedgreenflash": 0, "pedred": 0 } ] }, { "step": 2, "signalStatus": [ { "allred": 1, "yellow": 0, "green": 0, "turnleft": 0, "straight": 0, "turnright": 0, "pedgreen": 0, "pedgreenflash": 0, "pedred": 1 }, { "allred": 0, "yellow": 0, "green": 1, "turnleft": 0, "straight": 0, "turnright": 0, "pedgreen": 0, "pedgreenflash": 1, "pedred": 0 }, { "allred": 1, "yellow": 0, "green": 0, "turnleft": 0, "straight": 0, "turnright": 0, "pedgreen": 0, "pedgreenflash": 0, "pedred": 1 }, { "allred": 0, "yellow": 0, "green": 1, "turnleft": 0, "straight": 0, "turnright": 0, "pedgreen": 0, "pedgreenflash": 1, "pedred": 0 } ] }, { "step": 3, "signalStatus": [ { "allred": 1, "yellow": 0, "green": 0, "turnleft": 0, "straight": 0, "turnright": 0, "pedgreen": 0, "pedgreenflash": 0, "pedred": 1 }, { "allred": 0, "yellow": 0, "green": 1, "turnleft": 0, "straight": 0, "turnright": 0, "pedgreen": 0, "pedgreenflash": 0, "pedred": 1 }, { "allred": 1, "yellow": 0, "green": 0, "turnleft": 0, "straight": 0, "turnright": 0, "pedgreen": 0, "pedgreenflash": 0, "pedred": 1 }, { "allred": 0, "yellow": 0, "green": 1, "turnleft": 0, "straight": 0, "turnright": 0, "pedgreen": 0, "pedgreenflash": 0, "pedred": 1 } ] }, { "step": 4, "signalStatus": [ { "allred": 1, "yellow": 0, "green": 0, "turnleft": 0, "straight": 0, "turnright": 0, "pedgreen": 0, "pedgreenflash": 0, "pedred": 1 }, { "allred": 0, "yellow": 1, "green": 0, "turnleft": 0, "straight": 0, "turnright": 0, "pedgreen": 0, "pedgreenflash": 0, "pedred": 1 }, { "allred": 1, "yellow": 0, "green": 0, "turnleft": 0, "straight": 0, "turnright": 0, "pedgreen": 0, "pedgreenflash": 0, "pedred": 1 }, { "allred": 0, "yellow": 1, "green": 0, "turnleft": 0, "straight": 0, "turnright": 0, "pedgreen": 0, "pedgreenflash": 0, "pedred": 1 } ] }, { "step": 5, "signalStatus": [ { "allred": 1, "yellow": 0, "green": 0, "turnleft": 0, "straight": 0, "turnright": 0, "pedgreen": 0, "pedgreenflash": 0, "pedred": 1 }, { "allred": 1, "yellow": 0, "green": 0, "turnleft": 0, "straight": 0, "turnright": 0, "pedgreen": 0, "pedgreenflash": 0, "pedred": 1 }, { "allred": 1, "yellow": 0, "green": 0, "turnleft": 0, "straight": 0, "turnright": 0, "pedgreen": 0, "pedgreenflash": 0, "pedred": 1 }, { "allred": 1, "yellow": 0, "green": 0, "turnleft": 0, "straight": 0, "turnright": 0, "pedgreen": 0, "pedgreenflash": 0, "pedred": 1 } ] } ] } ] } ``` ## 5F5F + 5FDF 查詢號誌控制器時相排列之資料 | 資料表: tc_step_info * [API端]->[資料整理端] ```python { "deviceId": "TC003", //設備ID "phaseOrder": ["00"], //時相排序編號 } ``` * [資料整理端]->[指令轉換端] ```python { "topic": "5F5F", //指令碼 "UUID": "7fdd595f-bedd-48fe-9e70-b43b9db6d714", //唯一識別碼 "dataTime": "2024-07-23T09:55:08.903553", //指令下傳時間 "deviceId": "TC003", //設備ID "phaseOrder": "00", //時相排序編號 } ``` * [指令轉換端]->[資料整理端] ```python { "topic": "5FDF", "UUID": "cda18bec-023c-470b-920a-6c28144c6078", "dataTime": "2024-09-12T10:22:05.663631", "deviceId": "TC003", "phaseOrder": 0, "signalCount": 4, "signalMap": [1, 0, 1, 0, 1, 0, 1, 0], "subPhaseCount": 2, "content": [ { "subPhaseId": 1, "stepCount": 5, "StepInfos": [ { "step": 1, "signalStatus": [ { "allred": 0, "yellow": 0, "green": 1, "turnleft": 0, "straight": 0, "turnright": 0, "pedgreen": 1, "pedgreenflash": 0, "pedred": 0 }, { "allred": 1, "yellow": 0, "green": 0, "turnleft": 0, "straight": 0, "turnright": 0, "pedgreen": 0, "pedgreenflash": 0, "pedred": 1 }, { "allred": 0, "yellow": 0, "green": 1, "turnleft": 0, "straight": 0, "turnright": 0, "pedgreen": 1, "pedgreenflash": 0, "pedred": 0 }, { "allred": 1, "yellow": 0, "green": 0, "turnleft": 0, "straight": 0, "turnright": 0, "pedgreen": 0, "pedgreenflash": 0, "pedred": 1 } ] }, { "step": 2, "signalStatus": [ { "allred": 0, "yellow": 0, "green": 1, "turnleft": 0, "straight": 0, "turnright": 0, "pedgreen": 0, "pedgreenflash": 1, "pedred": 0 }, { "allred": 1, "yellow": 0, "green": 0, "turnleft": 0, "straight": 0, "turnright": 0, "pedgreen": 0, "pedgreenflash": 0, "pedred": 1 }, { "allred": 0, "yellow": 0, "green": 1, "turnleft": 0, "straight": 0, "turnright": 0, "pedgreen": 0, "pedgreenflash": 1, "pedred": 0 }, { "allred": 1, "yellow": 0, "green": 0, "turnleft": 0, "straight": 0, "turnright": 0, "pedgreen": 0, "pedgreenflash": 0, "pedred": 1 } ] }, { "step": 3, "signalStatus": [ { "allred": 0, "yellow": 0, "green": 1, "turnleft": 0, "straight": 0, "turnright": 0, "pedgreen": 0, "pedgreenflash": 0, "pedred": 1 }, { "allred": 1, "yellow": 0, "green": 0, "turnleft": 0, "straight": 0, "turnright": 0, "pedgreen": 0, "pedgreenflash": 0, "pedred": 1 }, { "allred": 0, "yellow": 0, "green": 1, "turnleft": 0, "straight": 0, "turnright": 0, "pedgreen": 0, "pedgreenflash": 0, "pedred": 1 }, { "allred": 1, "yellow": 0, "green": 0, "turnleft": 0, "straight": 0, "turnright": 0, "pedgreen": 0, "pedgreenflash": 0, "pedred": 1 } ] }, { "step": 4, "signalStatus": [ { "allred": 0, "yellow": 1, "green": 0, "turnleft": 0, "straight": 0, "turnright": 0, "pedgreen": 0, "pedgreenflash": 0, "pedred": 1 }, { "allred": 1, "yellow": 0, "green": 0, "turnleft": 0, "straight": 0, "turnright": 0, "pedgreen": 0, "pedgreenflash": 0, "pedred": 1 }, { "allred": 0, "yellow": 1, "green": 0, "turnleft": 0, "straight": 0, "turnright": 0, "pedgreen": 0, "pedgreenflash": 0, "pedred": 1 }, { "allred": 1, "yellow": 0, "green": 0, "turnleft": 0, "straight": 0, "turnright": 0, "pedgreen": 0, "pedgreenflash": 0, "pedred": 1 } ] }, { "step": 5, "signalStatus": [ { "allred": 1, "yellow": 0, "green": 0, "turnleft": 0, "straight": 0, "turnright": 0, "pedgreen": 0, "pedgreenflash": 0, "pedred": 1 }, { "allred": 1, "yellow": 0, "green": 0, "turnleft": 0, "straight": 0, "turnright": 0, "pedgreen": 0, "pedgreenflash": 0, "pedred": 1 }, { "allred": 1, "yellow": 0, "green": 0, "turnleft": 0, "straight": 0, "turnright": 0, "pedgreen": 0, "pedgreenflash": 0, "pedred": 1 }, { "allred": 1, "yellow": 0, "green": 0, "turnleft": 0, "straight": 0, "turnright": 0, "pedgreen": 0, "pedgreenflash": 0, "pedred": 1 } ] } ] }, { "subPhaseId": 2, "stepCount": 5, "StepInfos": [ { "step": 1, "signalStatus": [ { "allred": 1, "yellow": 0, "green": 0, "turnleft": 0, "straight": 0, "turnright": 0, "pedgreen": 0, "pedgreenflash": 0, "pedred": 1 }, { "allred": 0, "yellow": 0, "green": 1, "turnleft": 0, "straight": 0, "turnright": 0, "pedgreen": 1, "pedgreenflash": 0, "pedred": 0 }, { "allred": 1, "yellow": 0, "green": 0, "turnleft": 0, "straight": 0, "turnright": 0, "pedgreen": 0, "pedgreenflash": 0, "pedred": 1 }, { "allred": 0, "yellow": 0, "green": 1, "turnleft": 0, "straight": 0, "turnright": 0, "pedgreen": 1, "pedgreenflash": 0, "pedred": 0 } ] }, { "step": 2, "signalStatus": [ { "allred": 1, "yellow": 0, "green": 0, "turnleft": 0, "straight": 0, "turnright": 0, "pedgreen": 0, "pedgreenflash": 0, "pedred": 1 }, { "allred": 0, "yellow": 0, "green": 1, "turnleft": 0, "straight": 0, "turnright": 0, "pedgreen": 0, "pedgreenflash": 1, "pedred": 0 }, { "allred": 1, "yellow": 0, "green": 0, "turnleft": 0, "straight": 0, "turnright": 0, "pedgreen": 0, "pedgreenflash": 0, "pedred": 1 }, { "allred": 0, "yellow": 0, "green": 1, "turnleft": 0, "straight": 0, "turnright": 0, "pedgreen": 0, "pedgreenflash": 1, "pedred": 0 } ] }, { "step": 3, "signalStatus": [ { "allred": 1, "yellow": 0, "green": 0, "turnleft": 0, "straight": 0, "turnright": 0, "pedgreen": 0, "pedgreenflash": 0, "pedred": 1 }, { "allred": 0, "yellow": 0, "green": 1, "turnleft": 0, "straight": 0, "turnright": 0, "pedgreen": 0, "pedgreenflash": 0, "pedred": 1 }, { "allred": 1, "yellow": 0, "green": 0, "turnleft": 0, "straight": 0, "turnright": 0, "pedgreen": 0, "pedgreenflash": 0, "pedred": 1 }, { "allred": 0, "yellow": 0, "green": 1, "turnleft": 0, "straight": 0, "turnright": 0, "pedgreen": 0, "pedgreenflash": 0, "pedred": 1 } ] }, { "step": 4, "signalStatus": [ { "allred": 1, "yellow": 0, "green": 0, "turnleft": 0, "straight": 0, "turnright": 0, "pedgreen": 0, "pedgreenflash": 0, "pedred": 1 }, { "allred": 0, "yellow": 1, "green": 0, "turnleft": 0, "straight": 0, "turnright": 0, "pedgreen": 0, "pedgreenflash": 0, "pedred": 1 }, { "allred": 1, "yellow": 0, "green": 0, "turnleft": 0, "straight": 0, "turnright": 0, "pedgreen": 0, "pedgreenflash": 0, "pedred": 1 }, { "allred": 0, "yellow": 1, "green": 0, "turnleft": 0, "straight": 0, "turnright": 0, "pedgreen": 0, "pedgreenflash": 0, "pedred": 1 } ] }, { "step": 5, "signalStatus": [ { "allred": 1, "yellow": 0, "green": 0, "turnleft": 0, "straight": 0, "turnright": 0, "pedgreen": 0, "pedgreenflash": 0, "pedred": 1 }, { "allred": 1, "yellow": 0, "green": 0, "turnleft": 0, "straight": 0, "turnright": 0, "pedgreen": 0, "pedgreenflash": 0, "pedred": 1 }, { "allred": 1, "yellow": 0, "green": 0, "turnleft": 0, "straight": 0, "turnright": 0, "pedgreen": 0, "pedgreenflash": 0, "pedred": 1 }, { "allred": 1, "yellow": 0, "green": 0, "turnleft": 0, "straight": 0, "turnright": 0, "pedgreen": 0, "pedgreenflash": 0, "pedred": 1 } ] } ] } ] } ``` ## 0F12_設定現場設備之日期、時間 | 資料表: tc_time_settings * [API端]->[資料整理端] ```python { "deviceId": "TC003", "dateTime": "2024-09-18 10:01:24", } ``` * [資料整理端]->[指令轉換端] ```python { "topic": "0F12", "UUID": "63bb9762-af59-4002-9685-e9ab34c537f1", "dataTime": "2024-09-18T11:20:00.370883", "deviceId": "TC003", "content": { "year": 113, "month": 9, "day": 18, "week": 2, "hour": 10, "minute": 31, "second": 40 }, } ``` ## 0F42 + 0FC2 查詢現場設備之日期、時間 | 資料表: tc_time_settings * [API端]->[資料整理端] ```python { "deviceId": "TC003" } ``` * [資料整理端]->[指令轉換端] ```python { "topic": "0F42", "deviceId": "TC003", "dataTime": "2024-09-18T14:40:11.916009", "UUID": "2acc5606-3f94-4608-bb48-ed9800209f09" } ``` * [指令轉換端]->[資料整理端] ```python { "topic": "0FC2", "deviceId": "TC003", "UUID": "2acc5606-3f94-4608-bb48-ed9800209f09", "tcTimeSettings": "113-09-18 14:40:11", "reportTime": "2024-09-18T14:40:11.916009" } ``` ## 0F14_設定現場設備回報硬體狀態之週期 | 資料表: * [API端]->[資料整理端] ```python { "deviceId": "TC003", "hardwareCycle": 1 //硬體狀態回報週期(0~5)(1:1sec, 2:2sec, 3:5sec, 4:1min, 5:5min) } ``` * [資料整理端]->[指令轉換端] ```python { "topic": "0F14", "deviceId": "TC003", "UUID": "4709b86a-6130-4bcd-b407-3ad892a6a4ac", "dataTime": "2024-09-18T16:08:08.784276", "hardwareCycle": 1 } ``` ## 0F44 + 0FC4 查詢現場設備回報狀況之傳輸週期 | 資料表: * [API端]->[資料整理端] ```python { "deviceId": "TC003" } ``` * [資料整理端]->[指令轉換端] ```python { "topic": "0F44", "deviceId": "TC003", "dataTime": "2024-09-18T14:40:11.916009", "UUID": "2acc5606-3f94-4608-bb48-ed9800209f09" } ``` * [指令轉換端]->[資料整理端] ```python { "topic": "0FC4", "deviceId": "TC003", "dataTime": "2024-09-18T14:40:11.916009", "UUID": "2acc5606-3f94-4608-bb48-ed9800209f09", "hardwareCycle": 1 } ``` ## 5F3F_設定燈態步階傳輸回報傳輸週期 | 資料表: * [API端]->[資料整理端] ```python { "deviceId": "TC003", "transmitType": 1, "transmitCycle": 1 } ``` * [資料整理端]->[指令轉換端] ```python { "topic": "5F3F", "deviceId": "TC003", "UUID": "6d3160f5-e5b7-41e8-902b-dd8f5b74cfbf", "dataTime": "2024-09-18T16:41:16.633429", "transmitType": 1, "transmitCycle": 1 } ``` ## 5F6F + 5FEF 查詢後回報現場燈態或步階轉換資料之回報傳輸週期 | 資料表: * [API端]->[資料整理端] ```python { "deviceId": "TC003", "transmitType": 1, } ``` * [資料整理端]->[指令轉換端] ```python { "topic": "5F6F", "deviceId": "TC003", "UUID": "6d3160f5-e5b7-41e8-902b-dd8f5b74cfbf", "dataTime": "2024-09-18T16:41:16.633429", "transmitType": 1, } ``` * [指令轉換端]->[資料整理端] ```python { "topic": "5FEF", "deviceId": "TC003", "UUID": "6d3160f5-e5b7-41e8-902b-dd8f5b74cfbf", "dataTime": "2024-09-18T16:41:16.633429", "transmitType": 1, "transmitCycle": 1 } ``` ## 0F13_設定現場設備訊息等級 | 資料表: tc_device_infos * [API端]->[資料整理端] ```python { "deviceId": "TC003", "commandSet": 2 } ``` * [資料整理端]->[指令轉換端] ```python { "topic": "0F13", "deviceId": "TC003", "UUID": "6d3160f5-e5b7-41e8-902b-dd8f5b74cfbf", "dataTime": "2024-09-18T16:41:16.633429", "commandSet": 2 } ``` ## 0F43 + 0FC3 查詢韌體燒錄日期、版本及訊息等級 | 資料表: tc_device_infos * [API端]->[資料整理端] ```python { "deviceId": "TC003" } ``` * [資料整理端]->[指令轉換端] ```python { "topic": "0F43", "deviceId": "TC003", "UUID": "6dbe2f3e-dfc8-4774-97c8-c21b86090976", "dataTime": "2024-09-18T17:08:26.481627" } ``` * [指令轉換端]->[資料整理端] ```python { "topic": "0FC3", "deviceId": "TC003", "UUID": "6d3160f5-e5b7-41e8-902b-dd8f5b74cfbf", "dataTime": "2024-09-18T16:41:16.633429", "firmwareDate": "%YYY-%MM-%DD", "version": <float>, "companyId": <integer>, "commandSet": 2 } ``` ## 0F15_設定現場設備操作鎖定密碼 | 資料表: tc_device_infos * [API端]-> [資料整理端] ```python { "deviceId": "TC003", "password": "ABC123" } ``` * [資料整理端]->[指令轉換端] ```python { "topic": "0F15", "deviceId": "TC003", "UUID": "6d3160f5-e5b7-41e8-902b-dd8f5b74cfbf", "dataTime": "2024-09-18T16:41:16.633429", "password": "ABC123" //現場設備現場操作鎖定密碼,6 個ASCII 字,必須為0~9,A~F 之文數字。(必須為現場設備操作面板可輸入之ASCII)。 } ``` ## 0F45 + 0FC5 查詢現場設備操作鎖定密碼 | 資料表: tc_device_infos * [API端]->[資料整理端] ```python { "deviceId": "TC003" } ``` * [資料整理端]->[指令轉換端] ```python { "topic": "0F45", "deviceId": "TC003", "UUID": "6dbe2f3e-dfc8-4774-97c8-c21b86090976", "dataTime": "2024-09-18T17:08:26.481627" } ``` * [指令轉換端]->[資料整理端] ```python { "topic": "0FC5", "deviceId": "TC003", "UUID": "6d3160f5-e5b7-41e8-902b-dd8f5b74cfbf", "dataTime": "2024-09-18T16:41:16.633429", "password": "ABC123" } ``` ## 0F16_設定/解除現場資料庫操作鎖定 | 資料表: tc_device_infos * [API端]-> [資料整理端] ```python { "deviceId": "TC003", "lockDb": 1 } ``` * [資料整理端]->[指令轉換端] ```python { "topic": "0F16", "deviceId": "TC003", "UUID": "6d3160f5-e5b7-41e8-902b-dd8f5b74cfbf", "dataTime": "2024-09-18T16:41:16.633429", "lockDb": 1 //現場操作鎖定,整數(0~2)。0:全部解除鎖定,允許現場操作。1:全部鎖定,不允許現場操作。2:鎖定DB 更新,允許現場查看資料。 } ``` ## 0F46 + 0FC6 查詢現場資料庫操作鎖定 | 資料表: tc_device_infos * [API端]->[資料整理端] ```python { "deviceId": "TC003" } ``` * [資料整理端]->[指令轉換端] ```python { "topic": "0F46", "deviceId": "TC003", "UUID": "6dbe2f3e-dfc8-4774-97c8-c21b86090976", "dataTime": "2024-09-18T17:08:26.481627" } ``` * [指令轉換端]->[資料整理端] ```python { "topic": "0FC6", "deviceId": "TC003", "UUID": "6d3160f5-e5b7-41e8-902b-dd8f5b74cfbf", "dataTime": "2024-09-18T16:41:16.633429", "lockDb": 1 //現場操作鎖定,整數(0~2)。0:全部解除鎖定,允許現場操作。1:全部鎖定,不允許現場操作。2:鎖定DB 更新,允許現場查看資料。 } ``` ## 0F04 現場設備回報狀態 | 資料表: tc_device_infos * [API端]->[資料整理端] ```python { None } ``` * [資料整理端]->[指令轉換端] ```python { None } ``` * [指令轉換端]->[資料整理端] ```python { "topic": "0F04", "deviceId": "TC003", "UUID": "2c319230-d71b-49ce-9ae6-93b3abc979d0", "dataTime": "2024-09-18T16:41:16.633429", "content": [0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0] } ``` ## 5F03 主動回報號誌控制器步階轉換之資料 * [API端]->[資料整理端] ```python { None } ``` * [資料整理端]->[指令轉換端] ```python { None } ``` * [指令轉換端]->[資料整理端] ```python { "topic": "5F03", //指令碼 "UUID": "2c319230-d71b-49ce-9ae6-93b3abc979d0", //唯一識別碼 "dataTime": "2024-12-02T09:55:08.892543", //指令下傳時間 "deviceId": "TC003", //設備編號 "phaseOrder": 0, //時相排序編號 "signalMap": [1, 0, 1, 0, 1, 0, 1, 0], //燈態方向 "signalCount": 4, //岔路數目 "signalStatus": { //燈態狀態 "allred": 1, "yellow": 0, "green": 0, "turnleft": 0, "straight": 0, "turnright": 0, "pedgreen": 0, "pedgreenflash": 0, "pedred": 1 }, "subPhaseID": 1, //分相序號 "stepID": 1, //步階序號 "stepSec": 10 //步階時間 } ``` ## 5F08 回報號誌控制器現場操作 * [API端]->[資料整理端] ```python { None } ``` * [資料整理端]->[指令轉換端] ```python { None } ``` * [指令轉換端]->[資料整理端] ```python { "topic": "5F08", //指令碼 "UUID": "2c319230-d71b-49ce-9ae6-93b3abc979d0", //唯一識別碼 "dataTime": "2024-12-02T09:55:08.892543", //指令下傳時間 "deviceId": "TC003", //設備編號 "fieldOperate": "01", //現場操作碼 } ``` ## 0F10 重新啟動設備 * [API端]->[資料整理端] ```python { "topic": "0F10", "deviceId": "TC003", "UUID": "2c319230-d71b-49ce-9ae6-93b3abc979d0", "dataTime": "2024-09-18T16:41:16.633429" } ``` * [資料整理端]->[指令轉換端] ```python { "topic": "0F10", "deviceId": "TC003", "UUID": "2c319230-d71b-49ce-9ae6-93b3abc979d0", "dataTime": "2024-09-18T16:41:16.633429" } ``` * [指令轉換端]->[資料整理端] ```python { "topic": "0F10", //指令碼 "UUID": "2c319230-d71b-49ce-9ae6-93b3abc979d0", //唯一識別碼 "dataTime": "2024-12-02T09:55:08.892543", //指令下傳時間 "deviceId": "TC003", //設備編號 } ``` ## 5F48 + 5FC8查詢目前時制計畫內容 * [API端]->[資料整理端] ```python { "topic": "5F48", "deviceId": "TC003", "UUID": "2c319230-d71b-49ce-9ae6-93b3abc979d0", "dataTime": "2024-09-18T16:41:16.633429" } ``` * [資料整理端]->[指令轉換端] ```python { "topic": "5F48", "deviceId": "TC003", "UUID": "2c319230-d71b-49ce-9ae6-93b3abc979d0", "dataTime": "2024-09-18T16:41:16.633429" } ``` * [指令轉換端]->[資料整理端] ```python { "topic": "5FC8", //指令碼 "UUID": "2c319230-d71b-49ce-9ae6-93b3abc979d0", //唯一識別碼 "dataTime": "2024-07-23T09:55:08.892543", //指令下傳時間 "deviceId": "TC003", //設備ID "content": { "planId": 1, //時制計畫編號 "direct": 0, //基準方向(預設為0,北向) "phaseOrder": 0, //時相排序編號 "subPhaseCount": 2, //綠燈分相數目 "green": [ //N個綠燈秒數 15, //第一個綠燈秒數 0 //第二個綠燈秒數 ], "cycleTime": 30, //週期秒數 "offset": 0 //時差秒數 } } ``` ## 5F49 + 5FC9查詢觸動控制組態之設定內容 * [API端]->[資料整理端] ```python { "topic": "5F49", "deviceId": "TC003", "UUID": "2c319230-d71b-49ce-9ae6-93b3abc979d0", "dataTime": "2024-09-18T16:41:16.633429", "actuateType": 0, } ``` * [資料整理端]->[指令轉換端] ```python { "topic": "5F49", "deviceId": "TC003", "UUID": "2c319230-d71b-49ce-9ae6-93b3abc979d0", "dataTime": "2024-09-18T16:41:16.633429" "actuateType": 0, } ``` * [指令轉換端]->[資料整理端] ```python { "topic": "5FC9", //指令碼 "UUID": "2c319230-d71b-49ce-9ae6-93b3abc979d0", //唯一識別碼 "dataTime": "2024-07-23T09:55:08.892543", //指令下傳時間 "deviceId": "TC003", //設備ID "content": { "subPhaseId": 1, //設定觸動之分相序號,整數(1~8) "actuateType": [0, 0, 0, 0, 0, 0, 0, 0], //觸動控制;Bit 0:公車觸動,Bit 1:左轉觸動,Bit 2:匝道觸動,Bit 3:鐵道觸動,Bit 4:行人觸動,Bit 5:全觸動,Bit 6:贓車觸動(行車方向為紅燈),Bit 7:保留,*Bit 1~Bit 7 全部是0 表示觸動設定清除。*同一路口同時間只允許存在一種觸動控制設定(Bit 0~Bit 5 擇一設定) "timeExtend": 10, //觸動操作之延長延時 "actuateData1": N/A, //觸動設定參數1,整數(0~255),若ActuateType = 1,則為公車觸動時間高限(公車到達路口秒數);ActuateType = 2,則為左轉觸動時相編號;ActuateType = 4,則為匝道等候消散秒數;ActuateType = 16,則為行人綠燈初始秒數:接受行人觸動輸入行人時相之初設行人綠燈時間 "actuateData2": N/A, //觸動設定參數2,整數(0~255),若ActuateType = 1,則為公車觸動時間低限(公車於綠燈結束前到達路口而無法通過路口之秒數) } } ``` ## 5F40 + 5FC0 查詢目前控制策略之設定內容 * [API端]->[資料整理端] ```python { "topic": "5F40", "deviceId": "TC003", "UUID": "2c319230-d71b-49ce-9ae6-93b3abc979d0", "dataTime": "2024-09-18T16:41:16.633429" } ``` * [資料整理端]->[指令轉換端] ```python { "topic": "5F40", "deviceId": "TC003", "UUID": "2c319230-d71b-49ce-9ae6-93b3abc979d0", "dataTime": "2024-09-18T16:41:16.633429" } ``` * [指令轉換端]->[資料整理端] ```python { "topic": "5FC0", //指令碼 "UUID": "2c319230-d71b-49ce-9ae6-93b3abc979d0", //唯一識別碼 "dataTime": "2024-07-23T09:55:08.892543", //指令下傳時間 "deviceId": "TC003", //設備ID "content": { "controlStrategy": [1, 0, 0, 0, 0, 0, 0, 0],//回報目前執行之控制策略的對應位元資料;Bit 0:定時控制,Bit 1:動態控制,Bit 2:路口手動,Bit 3:中央手動,Bit 4:時相控制(或步階變換控制),Bit 5:即時控制,Bit 6:觸動控制。Bit 7:特勤路線控制。 "effectTime": 1, //動態控制策略有效時間(分),整數(0~255),0 為不計時。 } } ```