목록Tech (161)
CHOU
CCR 에서 WinForm들 간의 이벤트를 제어하는 방법을 알아보겠습니다. 우선 아래 그림과 같이 WinForm을 생성 한 후, 각각의 WinForm에서 발생하는 이벤트들을 중간의 CCR Program을 통해서 상호 중계해주는 예제를 알아보겠습니다. 그림1. 예제 다이어그램(출처: 네이버 MSRDS 카페) 메인 폼에서는 각각의 WinForm으로 부터 메세지를 받는 포트들을 정의해 놓고, 이러한 포트들에 메시지가 등록될 경우 실행되는 핸들러를 정의 합니다. 이 핸들러에서는 다시 각각 WinForm 들의 메소드를 호출하는 명령어를 기술해 놓아서 수신받은 다른 폼에 전달되도록 합니다. 즉, 별도의 WinForm으로 부터 데이터를 받을 때에는 포트를 통해서 받고, 이 포트에 연결된 핸들러안에서 FormInvok..
이전에 RunForm 객체를 등록 시키는 방법이 아니라 WinFormsServicePort에서 제공하는 특정한 메소드들을 사용하여, WinForm 안에 등록되어 있는 메소드들을 호출하는 방법을 알아보려 합니다. 오늘도 역시 MSRDS 네이버 카페에 김영준 수석님께서 올려주신 예제를 가지고 알아보겠습니다. 이 번 예제는 별도로 추가한 폼의 색상을 변경하는 메소드와 두 개으 숫자값을 더해서 결과를 표시하는 메소드를 별도로 추가한 폼에 생성해 놓은 후, 기존 폼에서 이 메소드들을 호출하는 과정을 알아보겠습니다. 1. 먼저, 프로젝트 참조에 이전과 같이 Ccr.Adapters.Winforms.dll을 기존 Microsoft.Ccr.Core.dll 파일과 같이 추가 합니다. 그림1. 레퍼런스 추가 화면 그림2. ..
일반적으로 CCR은 UI 없이 백그라운드로 처리되는 프로그램에 주로 사용되는데, 직접 로봇을 컨트롤 한다던가 시뮬레이션 과정을 적절히 제어하기 위해서는 UI를 만들어 사용하는데 이때 WinForm을 다루게 됩니다. 오늘은 몇가지 메소드를 이용해서 WinForm을 적절히 사용하는 방법을 알아보겠습니다. 오늘도 역시 네이버 MSRDS 카페에 김영준 수석님께서 올려주신 예제를 수행해 보면서 이해해 보겠습니다. CCR에서 WInForm을 제어하기 위해서는 기존에 참조했던 것에 더해서 새로운 Ccr.Adapters.Winforms.dll을 추가해 주어야 합니다. 아래 그림과 같이 참조 추가를 선택해서 추가해주고 using을 이용하여 선언해 줍니다. 그림1. .NET 레퍼런스 추가화면 그림2. 소스코드 추가화면 1..
며칠전에 파이낸셜 타임즈에서 물고기를 닮은 Fish Robot이 스페인 북부 해안에서 시험 가동에 들어갔다고 해서 화제가 된 적이 있었습니다. 예전에 Youtube 동영상에서 바다처럼 물의 흐름이 있는 곳이 아닌 정지된 수족관 안에서 시험 운영하는 것을 보고 대단하고 생각을 했었는데 벌써 상용화를 한다고 하니 놀라울 따름 입니다^^. 아래 사진은 파이낸셜 타임즈에서 소개한 물고기 로봇의 모습입니다. 위의 물고기 로봇이 행동하는 원리는 아래와 같습니다. 우리가 알고있는 먹는 물고기 모습보다는 심해에 사는 무자비하게 무섭게 생긴 물고기 로봇에 가까운 디자인이라고 생각합니다^^;. 이 물고기 로봇을 보고 있다가 예전에 Jaha Robot 동아리 후배 두명이 아이디어 공모전에 나갔던 것이 생각나서 간단히 소개해..
Arbiter는 CCR에서 가장 중요한 기능을 담당하는데 크게 3가지의 기능을 제공합니다. 1) 다른 프로시저(핸들러) 형태로 정의되어 있는 부분을 ITask에 매핑시켜서 해당 프로시저가 수행할 수 있도록 합니다. 2) Coordination 기능으로서 특정한 메세지를 해당 핸들러에 매핑시켜서, 해당 메세지가 수신되면 해당 헨들러에 전달하여 해당 핸들러가 수행되도록 합니다. 3) 동시성을 제어하는 기능으로, 특정한 시점에 동시 실행을 허용하던가, 아니면 배타적으로 오직 하나의 작업만 수행다던가 하는 선택 작업을 수행할 수 있습니다. 오늘은 핸들러 형태로 정의되어 있는 프로시저 부분을 ITask로 변환시켜서 해당 핸들러 안에 구현되어 있는 작업들을 실행시키는 예제를 수행하면서 위에 1번의 기능에 대해 알아..