2024년 1월 25일 목요일
2022년 4월 19일 화요일
2021년 3월 20일 토요일
[C#] Serial 통신
[C#] Serial 통신 (작성 중)
목표
- 시리얼 포트를 검색하여 콤보 박스를 만들고, 버튼으로 선택된 시리얼 포트를 열고 닫기
- MVVM 모델로 구현
프로젝트 생성
참조
2017년 3월 7일 화요일
C# 시계 만들기
C# 프로그래밍을 익히기 위해 디지털 시계를 만들어 보겠습니다.
1초 단위로 시간 표시가 바뀌는 간단한 프로그램이죠.
1. WPF 프로젝트를 생성하여 다음과 같이 비어있는 창을 하나 만듭니다.
2. Grid 와 Label 을 추가 합니다. Label 에는 다음과 같이 설정 합니다.
<Grid>
<Label
Content="Clock"
FontSize="24"
Grid.Column="0"
Grid.Row="0"
HorizontalContentAlignment="Center"
VerticalContentAlignment="Center"
x:Name="clock" />
</Grid>
그러면 다음과 같은 모양으로 창이 생성 됩니다.
이제 창 디자인은 완성 됐습니다. 본격적으로 C# 코딩을 해야겠네요.
우선 창의 “clock” 이라고 이름 붙인 Label 의 내용을 변경하는 코드를 넣어 보겠습니다.
그런데 WPF 에서 C#의 시작점 (Entry point)은 어디인지 모르겠네요.
이제 찾아보겠습니다.
요기 있네요. InitializeComponent(); 전/후 에서 초기화 과정을 추가 하면 된다고 어디선가 봤습니다.
그럼 Label 의 글자를 어디서 바꿔야 하는지 또 찾아 보겠습니다.
위와 같이 코드를 추가 했더니 다음과 같이 창이 생성 됐습니다.
이렇게 WPF 의 Entry point 를 알았네요.
다음 단계로 쓰레드를 생성하고, 1초 단위로 타이머 이벤트를 받아서 라벨 값만 바꿔주면 간단한 시계가 될거라 예상이 됩니다.
WPF의 타이머에 대해서는 위의 링크에서 잘 설명해 주셨네요.
제가 만들고 있는 시계 프로그램에 적용해 보겠습니다.
이제 완성 됐습니다. 컴파일 후 실행하면 1초 단위로 시간이 변경되는 것을 볼 수 있습니다.
TimeSpan.FromMilliseconds(0.01) 은 인터벌이 0.01 ms 단위로 발생하게 합니다. 예제에서 인터벌이 너무 짧게 잡혀서 Millisecond 가 아닌가 의심했었는데, 함수 이름대로 Millisecond 단위가 맞습니다.
2017년 1월 12일 목요일
창 크기를 고정하고 싶다
이전 글에서 SharpDevelop 로 첫번째 윈도우를 만들었는데, 크기가 마음대로 움직입니다. 크기를 고정하고 싶은데 이제야 알게 됐습니다.
디자인 탭을 선택하고, Window1.xaml 안에 있는 윈도우 객체(?)를 선택하면 오른쪽에 "속성" 이 나타납니다.
아래로 쭉 내리면 “ResizeMode” 라는 속성이 있는데 여기서 “NoResize”를 선택하면 크기가 고정되네요.
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 실행
파일 - 새로 만들기 – 솔루션
솔루션 폴더 생성
그러면 다음과 같은 화면이 나타납니다.
컴파일
빌드 아이콘을 눌러서 컴파일 합니다.프로그램을 실행해 봅시다.
요렇게 아무것도 없는 윈도우가 딱 나타나네요.
이렇게 첫번째 C# 프로그램(?)이 완성 되었습니다.
앞으로 하나 하나 추가해 볼 생각입니다.
이렇게 자세히 적어가면서 해야 제가 기억에 남을것 같습니다.
시간이 되게 많이 걸리긴 하는데, 글을 작성하는 것도 익숙해지면 더 빨리 진행할 수 있겠습니다.
SharpDevelop
C# 개발 환경이 Visual Studio 가 좋겠지만, 성격이 좀 특이해서 라이선스에 자유로운 개발 환경이 없을까 찾아보니 SharpDevelop 라는 프로그램이 있네요.
한글 메뉴도 나오고 MIT License 라고 하니 우선 당장은 써볼만 하겠습니다.
요즘은 Winform 보다는 WPF 가 대세라고 하니, WPF 를 중심으로 공부를 해 나갈 계획입니다.
이제 막 시작하는 단계라 잡히는대로 실행해 보려 합니다.
Open Live Writer 가 있으니 블로그에 글을 올리는 부담이 싹 사라져서 좋군요.
2015년 12월 28일 월요일
C# 첫번째 윈도우 창 만들기
첫번째 윈도우를 만드는데 콘솔로 하는 방법을 먼저 소개해 줘서 아주 좋습니다.
이런 코드를 컴파일 했더니 제 환경에서는 에러가 발생했습니다.
처음으로 MSDN을 검색해 보니 해결 방법이 나와 있네요.
2015년 12월 24일 목요일
C# 으로 시리얼 포트 사용 프로그램 만들기(1)
이제 배워가는 단계라서 만들어 가는 과정을 써 나갈 계획입니다.
C# 에 도움되는 링크
- http://haruair.com/blog/2672 : Visual Studio 2013 소소한 팁 모음
- http://nowonbun.tistory.com/67 : 명월일지 - C# 강좌가 있음
C# 시작하는 이야기
먼저 비주얼 스튜디오 커뮤니티 2015를 설치했습니다.
아무 준비도 없이 그냥 다운받아 설치 했네요.
그런데 비주얼 스튜디오 배경을 잘 못 선택해서 새까만 테마로 설정되어 있는데, 가독성이 많이 떨어지네요.
우선 비주얼 스튜디오 환경을 어떻게 변경할 수 있는지 이제부터 찾아가 보겠습니다.
Blogger 페이지 꾸미기
Blogger 페이지 꾸미는 방법을 적어봅니다. 프로그램 코드 블럭을 잘 쓰고 싶은데 마땅한 방법이 안보이네요.
-
eco 파일을 만들면 됩니다. 자세한 사항은 차후에 작성해야겠네요.
-
윈도우 8 에서 PADS 9.5 를 설치해서 사용중 입니다. PADS Logic 으로 회로도를 그리고 Layout 을 연결하려는데 계속 Connection failed 만 뜹니다. 여러번 시도하다가 혹시 권한 문제 아닌가 싶어서 PADS L...
-
C# 프로그래밍을 익히기 위해 디지털 시계를 만들어 보겠습니다. 1초 단위로 시간 표시가 바뀌는 간단한 프로그램이죠. 1. WPF 프로젝트를 생성하여 다음과 같이 비어있는 창을 하나 만듭니다. 2. Grid 와 Label 을 추가 합...






