레이블이 C#인 게시물을 표시합니다. 모든 게시물 표시
레이블이 C#인 게시물을 표시합니다. 모든 게시물 표시

2021년 3월 20일 토요일

[C#] Serial 통신

[C#] Serial 통신 (작성 중)


목표

  • 시리얼 포트를 검색하여 콤보 박스를 만들고, 버튼으로 선택된 시리얼 포트를 열고 닫기
  • MVVM 모델로 구현

프로젝트 생성








참조


2017년 3월 7일 화요일

C# 시계 만들기

 

C# 프로그래밍을 익히기 위해 디지털 시계를 만들어 보겠습니다.

1초 단위로 시간 표시가 바뀌는 간단한 프로그램이죠.

 

1. WPF 프로젝트를 생성하여 다음과 같이 비어있는 창을 하나 만듭니다.

image

2. Grid 와 Label 을 추가 합니다. Label 에는 다음과 같이 설정 합니다.

<Grid>
    <Label
        Content="Clock"
        FontSize="24"
        Grid.Column="0"
        Grid.Row="0"
        HorizontalContentAlignment="Center"
        VerticalContentAlignment="Center"
        x:Name="clock" />
</Grid>

그러면 다음과 같은 모양으로 창이 생성 됩니다.

image

이제 창 디자인은 완성 됐습니다. 본격적으로 C# 코딩을 해야겠네요.

우선 창의 “clock” 이라고 이름 붙인 Label 의 내용을 변경하는 코드를 넣어 보겠습니다.

그런데 WPF 에서 C#의 시작점 (Entry point)은 어디인지 모르겠네요.

이제 찾아보겠습니다.

image

요기 있네요. InitializeComponent(); 전/후 에서 초기화 과정을 추가 하면 된다고 어디선가 봤습니다.

그럼 Label 의 글자를 어디서 바꿔야 하는지 또 찾아 보겠습니다.

image

위와 같이 코드를 추가 했더니 다음과 같이 창이 생성 됐습니다.

image

이렇게 WPF 의 Entry point 를 알았네요.

 

다음 단계로 쓰레드를 생성하고, 1초 단위로 타이머 이벤트를 받아서 라벨 값만 바꿔주면 간단한 시계가 될거라 예상이 됩니다.

 

http://zheld.tistory.com/2

WPF의 타이머에 대해서는 위의 링크에서 잘 설명해 주셨네요.

제가 만들고 있는 시계 프로그램에 적용해 보겠습니다.

image

이제 완성 됐습니다. 컴파일 후 실행하면 1초 단위로 시간이 변경되는 것을 볼 수 있습니다.

 

TimeSpan.FromMilliseconds(0.01) 은 인터벌이 0.01 ms 단위로 발생하게 합니다. 예제에서 인터벌이 너무 짧게 잡혀서 Millisecond 가 아닌가 의심했었는데, 함수 이름대로 Millisecond 단위가 맞습니다.

2017년 1월 12일 목요일

창 크기를 고정하고 싶다

이전 글에서 SharpDevelop 로 첫번째 윈도우를 만들었는데, 크기가 마음대로 움직입니다. 크기를 고정하고 싶은데 이제야 알게 됐습니다.

image

디자인 탭을 선택하고, Window1.xaml 안에 있는 윈도우 객체(?)를 선택하면 오른쪽에 "속성" 이 나타납니다.

아래로 쭉 내리면 “ResizeMode” 라는 속성이 있는데 여기서  “NoResize”를 선택하면 크기가 고정되네요.

image

XAML 코드에는 아래와 같이 자동으로 추가 됩니다.


<?xml version="1.0" encoding="utf-8"?>
<Window
    x:Class="test_01.Window1"
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="test_01"
Height="300"
Width="300"
ResizeMode="NoResize"
>
<Grid></Grid>
</Window>


프로그램을 실행하면 창 크기를 조절할 수 없게 됩니다.

SharpDevelop & WPF 시작하기


SharpDevelop 로 C# 의 WPF 프로그램을 처음으로 만들어 보겠습니다.
SharpDevelop 는 이미 설치가 되어 있어야 합니다. 다운로드 및 설치 과정을 여기서 설명하기에는 너무 귀찮네요.
제가 여기 블로그에 C# 관련 글을 쓰는 이유는 제 스스로 공부하고, 기억하기 위한 글입니다.

SharpDevelop 실행

image   이렇게 생긴 아이콘을 클릭하여 시작하는거죠.

파일 - 새로 만들기 – 솔루션

image

솔루션 폴더 생성

image
그러면 다음과 같은 화면이 나타납니다.

image

디자인 탭을 누르면 이런 화면도 볼 수 있습니다.
image

컴파일

빌드 아이콘을 눌러서 컴파일 합니다.
image
프로그램을 실행해 봅시다.
image
요렇게 아무것도 없는 윈도우가 딱 나타나네요.

image
이렇게 첫번째 C# 프로그램(?)이 완성 되었습니다.
앞으로 하나 하나 추가해 볼 생각입니다.

이렇게 자세히 적어가면서 해야 제가 기억에 남을것 같습니다.
시간이 되게 많이 걸리긴 하는데, 글을 작성하는 것도 익숙해지면 더 빨리 진행할 수 있겠습니다.

SharpDevelop


C# 개발 환경이 Visual Studio 가 좋겠지만, 성격이 좀 특이해서 라이선스에 자유로운 개발 환경이 없을까 찾아보니 SharpDevelop 라는 프로그램이 있네요.
한글 메뉴도 나오고 MIT License 라고 하니 우선 당장은 써볼만 하겠습니다.
요즘은 Winform 보다는 WPF 가 대세라고 하니, WPF 를 중심으로 공부를 해 나갈 계획입니다.
이제 막 시작하는 단계라 잡히는대로 실행해 보려 합니다.
Open Live Writer 가 있으니 블로그에 글을 올리는 부담이 싹 사라져서 좋군요.

2015년 12월 28일 월요일

C# 첫번째 윈도우 창 만들기

명월님의 C#강좌를 따라하며 공부를 시작 합니다.

첫번째 윈도우를 만드는데 콘솔로 하는 방법을 먼저 소개해 줘서 아주 좋습니다.


이런 코드를 컴파일 했더니 제 환경에서는 에러가 발생했습니다.


처음으로 MSDN을 검색해 보니 해결 방법이 나와 있네요.




위와 같이 참조 추가를 하고, 다시 컴파일 하니까 컴파일이 됐습니다.


이렇게 창이 하나 덩그라니 생기네요.


2015년 12월 24일 목요일

C# 으로 시리얼 포트 사용 프로그램 만들기(1)

제가 C# 을 시작하게 된 이유는 제목과 같이 시리얼 포트를 사용하는 프로그램을 만들기 위해서 입니다.

이제 배워가는 단계라서 만들어 가는 과정을 써 나갈 계획입니다.

C# 에 도움되는 링크


C# 시작하는 이야기

업무를 위해 간단한 윈도우용 프로그램 만들 일이 있어서 이리저리 둘러본 결과 C# 이 적당할 것 같아서 시작해 봅니다.

먼저 비주얼 스튜디오 커뮤니티 2015를 설치했습니다.

아무 준비도 없이 그냥 다운받아 설치 했네요.

그런데 비주얼 스튜디오 배경을 잘 못 선택해서 새까만 테마로 설정되어 있는데, 가독성이 많이 떨어지네요.

우선 비주얼 스튜디오 환경을 어떻게 변경할 수 있는지 이제부터 찾아가 보겠습니다.

요기서 발견 했습니다.




여기서 제 맘에 드는 파랑을 선택했습니다.

검색해보니 테마를 별도로 다운로드 받아서 적용하는 방법도 있던데 거기까지는 관심이 없네요.




Blogger 페이지 꾸미기

 Blogger 페이지 꾸미는 방법을 적어봅니다. 프로그램 코드 블럭을 잘 쓰고 싶은데 마땅한 방법이 안보이네요.