신호생성 repo (24. 1. 5 ~).
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

45 lines
3.8 KiB

아주 상세하게는 생각해놓지 못했습니다. 대략적으로 다음과 같습니다.
(1) 이전 과정에서 5분 단위로 통합테이블 A가 만들어집니다. A는 첨부하는 그림처럼 생겼습니다.
- 열이름 : 시작유닉스, 교차로번호, A현시번호, B현시번호, 현시시간, 진입ID_A, 진입ID_B, 진출ID_A, 진출ID_B
(2) 교차로-노드ID 매칭 테이블을 가져와서 통합테이블 A의 교차로번호를 노드ID로 변환하여 새로운 열 "노드ID"를 만듭니다. 기존의 "교차로번호" 열은 삭제합니다.
(3) 통합테이블 A에 "신호"열을 만들고 "rrrrrrrrrrrrrr"을 부여합니다. (r을 이동류의 개수만큼 반복해 만듭니다.)
(4) 비보호우회전을 g로 부여합니다.
- 어떤 이동류와도 상충(Foe)이 일어나지 않는 이동류에 대해서는 g를 부여 (서로 같은 이동류이거나 진출id가 같은 이동류도 arefoes=True로 되는데, 이 경우는 제외)
- 어떤 이동류와도 상충이 일어나지는 않지만, (진입ID, 진출ID)가 존재하는 경우에는 r을 부여
(5) (진입ID, 진출ID) 조합에 해당되는 이동류에 G를 부여합니다.
(6) 적색, 황색시간을 고려하여 더 세부적으로 통합테이블을 만듭니다. (통합테이블 B)
- 이전 통합테이블 B에서는 (A현시번호, B현시번호)가 (1,1), (2,2), (3,3), (3,4), (4,4)와 같은 식으로 되어있었습니다. 이것을 (1r,1r),(1g,1g),(1y,1y),(2r,2r),(2g,2g),(2y,2y),(3r,3r),(3g,3g),(3y,3y),(3r,4r),(3g,3g),(3y,4y),(4r,4r),(4g,4g),(4y,4y)로 늘립니다. 이때, 진입ID의 값 네 개와 "교차로번호", "시작유닉스"는 이전 값과 그대로 두고, "현시시간"은 적색시간과 황색시간을 고려하여 재선정합니다. "신호"도 r, g, y를 고려하여 재선정합니다.
- 예를 들어, 통합테이블 A가
1704384400, i0, 1, 1, 37, -571542797_02, -571500487_01, 571500487_01, 571542797_02, grrgGGGgrrgGG
1704384400, i0, 2, 2, 39, -571500487_01, -571542797_02, 571545870_01, 571510153_01, gGGgrrrgGGgrr
이었으면 이것을
1704384400, i0, 1r, 1r, 1, -571542797_02, -571500487_01, 571500487_01, 571542797_02, grrgrrrgrrgrr
1704384400, i0, 1g, 1g, 32, -571542797_02, -571500487_01, 571500487_01, 571542797_02, grrgGGGgrrgGG
1704384400, i0, 1y, 1y, 4, -571542797_02, -571500487_01, 571500487_01, 571542797_02, grrgyyygrrgyy
1704384400, i0, 2r, 2r, 1, -571500487_01, -571542797_02, 571545870_01, 571510153_01, grrgrrrgrrgrr
1704384400, i0, 2g, 2g, 34, -571500487_01, -571542797_02, 571545870_01, 571510153_01, gGGgrrrgGGgrr
1704384400, i0, 2y, 2y, 4, -571500487_01, -571542797_02, 571545870_01, 571510153_01, gyygrrrgyygrr
로 바꾸는 식입니다. 이 테이블을 통합테이블 B라고 하겠습니다.
(7) 통합테이블 B에 새로운 열 "상세현시번호"을 만들고 다음과 같이 값을 부여합니다.
- 통합테이블 B의 각각의 ("시작유닉스", "노드ID") 에 대하여 차례로 0,1,2, ... 로 부여합니다.
- ex : "시작유닉스" = 1704384400 "노드ID" = i0 인 경우, (1r,1r),(1g,1g),(1y,1y),(2r,2r),(2g,2g),(2y,2y),(3r,3r),(3g,3g),(3y,3y),(3r,4r),(3g,3g),(3y,4y),(4r,4r),(4g,4g),(4y,4y)가 총 15개이므로 0,1,2, ..., 14로 부여합니다.
(8) 통합테이블 B에서 "시작유닉스", "노드ID", "상세현시번호", "현시시간", "신호"만 남기고 모두 삭제합니다. 이 테이블을 통합테이블 C라고 하겠습니다.
1704384400, i0, 0, 1, grrgrrrgrrgrr
1704384400, i0, 1, 32, grrgGGGgrrgGG
1704384400, i0, 2, 4, grrgyyygrrgyy
1704384400, i0, 3, 1, grrgrrrgrrgrr
1704384400, i0, 4, 34, gGGgrrrgGGgrr
1704384400, i0, 5, 4, gyygrrrgyygrr
: :
(9) 통합테이블 C를 토대로 tll.xml 파일을 만듭니다.
- 이에 대한 상세한 사항은 아직 생각하지 못했습니다.