1 |
1
국제표준 네트워크 통신 기술을 기반으로 클라이언트 ECU의 오브젝트 풀(Object Pool)을 업로딩하여 실시간으로 가상 터미널을 구현하는 방법으로서, 클라이언트 ECU를 인식하는 단계;상기 클라이언트 ECU의 상기 오브젝트 풀을 캔버스(CAN_BUS)를 통해 가상 터미널로 전송하는 단계;상기 가상 터미널의 가상 터미널 커맨드 유니트에서 상기 오브젝트 풀을 GUI 유니트로 전송하는 단계; 및 상기 GUI 유니트에서 수신받은 상기 오브젝트 풀을 구현하여 동적으로 표시하는 것을 특징으로 하는 가상 터미널을 구현하는 방법
|
2 |
2
제 1 항에 있어서,상기 클라이언트 ECU는 가상 터미널 서버에 연결되고 가상 캔버스를 제공하는 캔서버를 통해 커맨드 메시지를 송수신하고 모니터링되는 것을 특징으로 하는 가상 터미널을 구현하는 방법
|
3 |
3
제 1 항에 있어서,상기 오브젝트 풀을 GUI 유니트로 전송하는 단계에서는, 상기 클라이언트 ECU로부터 EOO(End of Object Pool) 커맨드 메시지(message)를 받게 되면, 가상 터미널 커맨드 유니트에서 오브젝트 풀에 대한 커맨드 메시지 이벤트(Event)를 발생하고, 상기 GUI 유니트로 상기 오브젝트 풀에 대한 커맨드 메시지 이벤트 신호를 송신하여 상기 클라이언트 ECU의 오브젝트 풀을 처리하는 것을 특징으로 하는 가상 터미널을 구현하는 방법
|
4 |
4
제 1 항에 있어서,상기 클라이언트 ECU로부터 커맨드(Command Message) 메시지 수신시에, 상기 가상 터미널 커맨드 유니트로부터 해당 커맨드 메시지 내용을 담은 리퀘스트 객체를 생성하여 제 1 큐(Queue)에 저장하는 단계;제 1 컨서머(consumer)에서 상기 제 1 큐(Queue)에 저장된 리퀘스트 객체를 주기적으로 가져오도록 호출하고, 호출 신호를 상기 GUI 유니트로 송출(emit)하는 단계;상기 GUI 유니트에서 커맨드 메시지(message)가 발생한 경우, 상기 GUI 유니트로부터 해당 커맨드 메시지 내용을 담은 리퀘스트 객체를 생성하여 제 2 큐(Queue)에 저장하는 단계; 제 2 컨서머(consumer)에서 상기 제 2 큐(Queue)에 저장된 리퀘스트 객체를 주기적으로 가져오도록 호출하고 호출 신호를 상기 가상 터미널 커맨드 유니트로 송출(emit)하는 단계; 및 상기 가상 터미널 커맨드 유니트에서 상기 제 2 컨서머(consumer)로부터 수신된 제 2 큐(Queue)에 저장된 리퀘스트 객체의 커맨드 메시지를 캔버스(CAN_BUS) 상에 전송하여 해당 클라이언트 ECU를 관리 및 조작하는 단계를 더 수행하는 것을 특징으로 하는 가상 터미널을 구현하는 방법
|
5 |
5
제 4 항에 있어서,상기 GUI 유니트가 메인 쓰레드이고, 상기 가상 터미널 커맨드 유니트가 제 2 쓰레드이고, 상기 제 1 및 제 2 컨서머(consumer)가 각각 제 3 및 제 4 쓰레드인 것을 특징으로 하는 가상 터미널을 구현하는 방법
|
6 |
6
제 1 항에 있어서,상기 클라이언트 ECU로부터 커맨드(Command Message) 메시지 수신시에, 상기 가상 터미널 커맨드 유니트에서 ProcessMsg 함수 호출하는 단계;제 1 큐(Queue)에서 커맨드 메시지 내용을 담은 리퀘스트 객체 생성 및 putRequest() 함수 호출을 수행하는 단계;제 1 컨서머(consumer)에서 주기적으로 getRequest() 호출을 수행하는 단계;상기 GUI 유니트에서 상기 제 1 큐(Queue)에 저장된 리퀘스트 객체를 꺼내어 리턴하고 GUI의 change_panel() 함수가 호출되는 단계; 및상기 GUI 유니트의 change_panel() 함수에서 리퀘스트 객체의 메시지에 따라서 디자인 패턴 처리하는 단계를 더 포함하여 이루어지는 것을 특징으로 하는 가상 터미널을 구현하는 방법
|
7 |
7
제 6 항에 있어서,상기 GUI 유니트에서 커맨드 메시지 발생시에, 상기 GUI 유니트에서 Button widget의 on_clicked() 함수 호출을 수행하는 단계;제 2 큐(Queue)에서 커맨드 메시지를 담은 리퀘스트 객체 생성 및 putRequest() 함수 호출을 수행하는 단계;제 2 컨서머(consumer)에서 주기적으로 getRequest() 호출되며, 조건이 맞는 경우, 리퀘스트 객체를 얻는 단계; 및 상기 가상 터미널 커맨드 유니트(IsoAgLib)의 Send_command() 함수를 호출하여 리퀘스트 객체의 커맨드 메시지를 캔버스(CAN_BUS) 상에 전송하는 단계를 더 포함하여 이루어지는 것을 특징으로 하는 가상 터미널을 구현하는 방법
|
8 |
8
제 1 항에 있어서,상기 GUI 유니트에서 수신받은 상기 오브젝트 풀을 구현하여 동적으로 표시하는 단계에서는,QT GUI toolkit을 사용하여 가상터미널 GUI를 구현하되, QT 내의 Layout 객체들을 이용하여 레이아웃을 구성하고, 중앙에는 "StackedLayout" 객체를 이용하는 것을 특징으로 하는 가상 터미널을 구현하는 방법
|
9 |
9
제 1 항에 있어서,상기 GUI 유니트에서 수신받은 상기 오브젝트 풀을 구현하여 동적으로 표시하는 단계에서는,QGridLayout 객체와 Spacer 객체를 이용하여, 오브젝트들이 가지는 위치에 위젯을 배치하고, QGridLayout 내부에 중첩적으로 QGridLayout을 설정하여 오브젝트 간 계층적인 관계를 GUI 상에서 표현하는 것을 특징으로 하는 가상 터미널을 구현하는 방법
|