'초보의 아웅다웅 설계하기/비주얼 C#'에 해당되는 글 8건

  1. 2018.08.28 바이트 어레이의 값 확인
  2. 2018.08.28 Uart 데이터 Byte 입력상의 입력 사이즈 초기화
  3. 2018.04.22 Bluetooth의 시작
  4. 2018.04.01 C# TextBox 속도와 WordWrap = false 처리
  5. 2017.07.25 Visual Studio - error MSB8020
  6. 2013.07.08 VB.NET CustomMsgBox
  7. 2011.04.06 C# - 배포판 만들기
  8. 2010.12.07 비주얼 C#
2018.08.28 08:54

C#에서 입력된 바이트 어레이의 메모리 값 확인


속성에서 안전하기 않은 코드 허용에 체크를 하고 아래와 같이 설정을 하면 볼 수 있습니다.








Posted by 초보 HW 엔지니어 로망와니

댓글을 달아 주세요

2018.08.28 08:52

C#에서 입력 Uart 처리 

입력 사이즈를 확인하였던 intRecSize를 초기화해 주지 않으니 0x00의 비어있는 값이 버퍼에 쌓이는 경우가 있었습니다.



      private void ComPort_DataReceived(object sender, SerialDataReceivedEventArgs e)

        {

            if (rbAscii.Checked == true)

            {

                InputData = ComPort.ReadExisting();

                if (InputData != String.Empty)

                {

                    this.BeginInvoke(new SetTextCallback(SetText), new object[] { InputData });

                }

            }

            else

            {

  /* 입력된 데이터 량 */

                int intRecSize = ComPort.BytesToRead;


                while (intRecSize != 0)

                {

                    TimerCnt = 0;

                    byte[] buff = new byte[intRecSize];


                    ComPort.Read(buff, 0, intRecSize); 

                    

                    /* 입력된 데이터 처리 */



 intRecSize = 0;        

 }

   }

}

Posted by 초보 HW 엔지니어 로망와니

댓글을 달아 주세요

2018.04.22 11:58

블루투스 관련 프로젝트를 하기 전에 페어링을 어떻게 하는 가 등을 보다보니 아래의 동영상을 찾게 되었습니다. 정상동작하는 지 확인해 보았으니 이제부터 시작이겠죠.

공부할 게 많은 프로젝트가 될 것 같습니다.

 

https://www.youtube.com/watch?v=Jn05CU3mxzo

 

 

 

Bluetooth_Tutorial.zip

 

 

 

 

 

 

Posted by 초보 HW 엔지니어 로망와니

댓글을 달아 주세요

2018.04.01 10:06

C# 테스트 프로그램을 만들어 장비와 연동하는데 기존에는 파일로 읽어서 바로 저장하다가 TextBox에 모두 남긴 후 한번에 저장하도록 프로그램을 작성하였습니다.

내부에서 텍스트 박스에 찍힌 로그를 보면서 이상 유무를 바로 확인하자고 했기 때문입니다.

문제는 텍스트 박스에 적히는 글이 많아질 수록 속도가 현저하게 느려지는 현상이 발생하였습니다.

기존에는 그다지 많은 양의 (100KB 이하) 데이터만을 로그로 찍다보니 알 수 없는 증상이었습니다.

 

이 문제를 찾다보니 같은 증상에 대한 문의와 해결방법이 있었습니다.

자동 줄바꿈 처리에 대한 부분인데 이 부분을 False로 설정하니 속도가 비약적으로 향상되었습니다.

어차피 제 프로그램은

Textbox.text += str

이런 구조에

줄 바꿈도 자체적으로 "\r\n"으로 처리하기때문에 자동 줄바꿈 필요는 없었습니다.

 

----- 관련 내용 -----

사이트 :

https://code.i-harness.com/ko/q/431bd5

 

내용 : WordWrap = false로 설정하면 일부 경우 성능이 크게 향상됩니다. 최대 한도에 도달하면 여전히 긴 줄을 감 쌉니다. 나는 Base64 데이터의 긴 덩어리를 포함하는 90K의 텍스트를 시도했고, 응답은 16 초에서 2 초로 바뀌었다

 

WordWrap에 대한 설명

https://msdn.microsoft.com/ko-kr/library/system.windows.forms.textboxbase.wordwrap(v=vs.110).aspx

 

WordWrap의 사용법에 대한 동영상

https://www.youtube.com/watch?v=o4FvCUWS8RE

 

 

Posted by 초보 HW 엔지니어 로망와니

댓글을 달아 주세요

2017.07.25 18:03

 

오류 1 error MSB8020: The build tools for v140 (Platform Toolset = 'v140') cannot be found. To build using the v140 build tools, please install v140 build tools.  Alternatively, you may upgrade to the current Visual Studio tools by selecting the Project menu or right-click the solution, and then selecting "Upgrade Solution...". 

 

프로젝트 속성 -> 플렛폼 도구 집합 -> 설치된 툴로 변경

'초보의 아웅다웅 설계하기 > 비주얼 C#' 카테고리의 다른 글

Bluetooth의 시작  (0) 2018.04.22
C# TextBox 속도와 WordWrap = false 처리  (0) 2018.04.01
Visual Studio - error MSB8020  (0) 2017.07.25
VB.NET CustomMsgBox  (0) 2013.07.08
C# - 배포판 만들기  (0) 2011.04.06
비주얼 C#  (0) 2010.12.07
Posted by 초보 HW 엔지니어 로망와니

댓글을 달아 주세요

2013.07.08 22:06

Public Class CustomMsgBox
    Private Declare Function RemoveMenu Lib "user32" (ByVal hMenu As IntPtr, ByVal nPosition As Integer, ByVal wFlags As Integer) As Integer
    Private Declare Function GetSystemMenu Lib "user32" (ByVal hWnd As IntPtr, ByVal bRevert As Boolean) As IntPtr
    Private Declare Function GetMenuItemCount Lib "user32" (ByVal hMenu As IntPtr) As Integer
    Private Declare Function DrawMenuBar Lib "user32" (ByVal hwnd As IntPtr) As Boolean

    Private Const MF_BYPOSITION = &H400
    Private Const MF_REMOVE = &H1000
    Private Const MF_DISABLE = &H2

    Private Sub DisableCloseButton(ByVal hWnd As IntPtr)
        Dim hmenu As IntPtr : Dim menuItemCount As Integer
        hmenu = GetSystemMenu(hWnd, False)
        menuItemCount = GetMenuItemCount(hmenu)

        Call RemoveMenu(hmenu, menuItemCount - 1, MF_DISABLE Or MF_BYPOSITION)
        Call RemoveMenu(hmenu, menuItemCount - 2, MF_DISABLE Or MF_BYPOSITION)
        Call DrawMenuBar(hWnd)

    End Sub

    Enum CustomMsgBoxResult
        Yes
        No
    End Enum

    Enum CustomMsgboxButtons
        OK
        Cancel
        Yes
        No
    End Enum

    Enum CustomMsgboxBgimage
        WarningOK
        WarningYesNo
        InformationOk
        InformationYesNo
    End Enum


    Public Result As CustomMsgBoxResult

    Public Overloads Function Show(ByVal mParent As Form, ByVal mText As String, ByVal mIcon As Integer) As Integer
        Label1.Text = mText
        Me.Icon = mParent.Icon
        If mIcon = 0 Then
            Panel1.BackgroundImage = My.Resources.PNG_WARNING_OK '//130706
            btnMsgBox1.Visible = False
            btnMsgBox2.Visible = True
        ElseIf mIcon = 1 Then
            Panel1.BackgroundImage = My.Resources.PNG_WARNING_YESNO '//130706
            btnMsgBox1.Visible = True
            btnMsgBox2.Visible = True
        ElseIf mIcon = 2 Then
            Panel1.BackgroundImage = My.Resources.PNG_INFOMATION_OK '//130706
            btnMsgBox1.Visible = False
            btnMsgBox2.Visible = True
        Else
            Panel1.BackgroundImage = My.Resources.PNG_INFOMATION_YESNO '//130706
            btnMsgBox1.Visible = True
            btnMsgBox2.Visible = True
        End If

        Me.ShowDialog(mParent)

        Return Result
    End Function

        Private Function hWnd() As IntPtr
        Throw New NotImplementedException
    End Function

    Private Sub PictureBox1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnMsgBox2.Click
        Result = CustomMsgBoxResult.No
        Me.Close()
    End Sub

    Private Sub btnMsgBox1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnMsgBox1.Click
        Result = CustomMsgBoxResult.Yes
        Me.Close()
    End Sub
End Class

 

 

 

 

-- 사용 --

            If CustomMsgBox.Show(Me, "Check Step Motor Drv. Com Line.", CustomMsgBox.CustomMsgboxBgimage.WarningYesNo) = CustomMsgBox.CustomMsgBoxResult.No Then
                CustomMsgBox.Show(Me, "No", CustomMsgBox.CustomMsgboxBgimage.InformationOk)
            Else
                CustomMsgBox.Show(Me, "Yes", CustomMsgBox.CustomMsgboxBgimage.InformationYesNo)
            End If

'초보의 아웅다웅 설계하기 > 비주얼 C#' 카테고리의 다른 글

Bluetooth의 시작  (0) 2018.04.22
C# TextBox 속도와 WordWrap = false 처리  (0) 2018.04.01
Visual Studio - error MSB8020  (0) 2017.07.25
VB.NET CustomMsgBox  (0) 2013.07.08
C# - 배포판 만들기  (0) 2011.04.06
비주얼 C#  (0) 2010.12.07
Posted by 초보 HW 엔지니어 로망와니

댓글을 달아 주세요

2011.04.06 17:04
사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지

'초보의 아웅다웅 설계하기 > 비주얼 C#' 카테고리의 다른 글

Bluetooth의 시작  (0) 2018.04.22
C# TextBox 속도와 WordWrap = false 처리  (0) 2018.04.01
Visual Studio - error MSB8020  (0) 2017.07.25
VB.NET CustomMsgBox  (0) 2013.07.08
C# - 배포판 만들기  (0) 2011.04.06
비주얼 C#  (0) 2010.12.07
Posted by 초보 HW 엔지니어 로망와니

댓글을 달아 주세요

2010.12.07 01:20

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
//                 MessageBox.Show("OK");
//            textBox1.Text = "우하하";
            int a = Convert.ToInt32(textBox1.Text);//들어온 문자를 숫자로 인식시키기 위해
            int b = Convert.ToInt32(textBox2.Text);
            int c = a + b;
            textBox3.Text = Convert.ToString(c);//더한 결과 값을 문자로 다시 입력시키기 위해서
        }

        private void button3_Click(object sender, EventArgs e)
        {
            textBox1.Clear();
            textBox2.Clear();
            textBox3.Clear();
        }

        private void button2_Click(object sender, EventArgs e)
        {
//            textBox3.Text = "textBox1.Text" + "textbox2.text";//글자
            int a = Convert.ToInt32(textBox1.Text);
            int b = Convert.ToInt32(textBox2.Text);
            int c = a - b;
            textBox3.Text = Convert.ToString(c);
            //                a= Convert.ToInt32(textBox1.text) + Convert.ToInt32(textBox2.Text);
        }

        private void button4_Click(object sender, EventArgs e)
        {
            textBox3.Text = textBox1.Text + textBox2.Text;//이렇게 더하면 텍스트 자체가 붙어서 나온다.
        }
    }
}

'초보의 아웅다웅 설계하기 > 비주얼 C#' 카테고리의 다른 글

Bluetooth의 시작  (0) 2018.04.22
C# TextBox 속도와 WordWrap = false 처리  (0) 2018.04.01
Visual Studio - error MSB8020  (0) 2017.07.25
VB.NET CustomMsgBox  (0) 2013.07.08
C# - 배포판 만들기  (0) 2011.04.06
비주얼 C#  (0) 2010.12.07
Posted by 초보 HW 엔지니어 로망와니

댓글을 달아 주세요