그럼 이제 가져온 속도 데이터를 화면에 출력해보자.
처음 생각했을때에는 화면 자체를 Transform 할 수 있는 API 가 있을것으로 생각했으나, 없는것인지 못찾은건인지 결국은 아래와 같이 이미지로 반전된 숫자를 만들고, 이 이미지를 디스플레이 하는 Custom Control 을 만들어 처리하게 됐다. (혹시 이 노가다 방법 말고 엘레강스한 방법이 있다면 바로 제보 부탁 ^^)
우리가 스마트폰이나 PDA 에 나타낼 문자들은 위 그림에서 하단의 PDA 로 표시된 부분과 같이 상하가 뒤집힌 형태가 되어야 한다.
각 숫자는 0~9 까지 모두 상하 flip 된 상태의 이미지를 10개를 만들었고, 해당 이미지는 나타낼 자리수만큼의Picture Panel 위에 올려졌다. 이렇게 만들어진 custom control 은 아래와 같다.
* 속도 표시를 위한 Digit Control Tester
위 컨트롤은 나중에 실제 메인폼에 사용될 것이다.
위에서 만든 Value Property의 setter 코드는 아래와 같다.
* Digit Control::Value Property
set{
this.digit = value;
string _digit = value.ToString().PadLeft(3,'0');
this.pic1.Image = this.imgDigit.Images[Int32.Parse(_digit[0].ToString())];
this.pic2.Image = this.imgDigit.Images[Int32.Parse(_digit[1].ToString())];
this.pic3.Image = this.imgDigit.Images[Int32.Parse(_digit[2].ToString())];
}
이 컨트롤로 LCD 에 속도를 표시 할 수 있게 되었다.
이제 다음은 현재 진행방향을 표시하기 위한 Compass 컨트롤을 만들어 보자.