c# 13

C# NET 을 위한 Modbus Library 에 대한 간단한 고찰

이 글에서 나오는 소스코드는 읽는이의 이해를 돕기 위해 필자가 직접 작성한 "손코딩" 이므로, 동작을 보장하지 않습니다. 필자는 net452 를 대상으로 하는 SerialPort(RTU) 를 통한 모드버스 통신을 다음과 같은 라이브러리로 구현을 진행하였다. EasyModbus NModbus4 EasyModbus EasyModbus 는 상당히 간결하게 코드를 작성할 수 있도록 도와준다. public class Modbus_Example { public Modbus_Example() { try { ModbusClient modbusClient = new ModbusClient("COM1"); modbusClient.UnitIdentifier = 2; modbusClient.Baudrate = 9600; mo..

Simplify Conditional Expression for return to bool

이러한 코드를 작성하였다. C# private byte[] Chargeable_1Byte_ = new byte[1]; public bool isChargingEnable() => Chargeable_1Byte_[0] == 0x00 ? true : false; Quck Action 에 뭔가 있을까? 하고 확인을 해 보니.. 이러한 문법을 지원한다! C# private byte[] Chargeable_1Byte_ = new byte[1]; public bool isChargingEnable() => Chargeable_1Byte_[0] == 0x00; 깔끔해서 보기가 더욱 좋아졌다. Java private byte[] Chargeable_1Byte_ = new byte[1]; public boolean is..

C# .Net Core 로 만든 Linux 기반 멀티 소켓 서버 Base Project 공개

https://github.com/Kuass/Csharp-Socket-Server Kuass/Csharp-Socket-Server Easy-to-customize projects that serve as the foundation for a powerful socket server. - Kuass/Csharp-Socket-Server github.com 소켓 서버 예제는 많지만 .Net Core 로 작성된 예제나 너무 간단하게만 이루어진 소켓 예제가 주류로 이루어 진 것 같아 Base Project 를 작성해 Github에 공개했습니다. 해당 서버에서는 자체적으로 Protocol 을 정의하여 여러분들이 직접 Custom 하기 용이한 형태로 개발된 상태입니다. 어디까지나 Base 예제이고 작동은 확인했으나..

Language/C# 2021.05.22

String 으로된 Byte Array를 Byte[] 로 리턴받기

실무에서 사용했던 알고리즘입니다. 알고리즘 이랄게 없지만요;; 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 static void Main(string[] args) { string packet_str = "20 21 03 18 09 40 55 00 01 07 4D 4F 44 45 52 4E 54 32 00 04 02 31 41 00 01" + " " + "00 01 FF FF FF FF FF FF FF FF 00 00 00 00 01 00 00"; byte[] array_result = string_to_hex_array(packet_str); } public static byte[] string_to_hex_array(string charstr) { string[] split ..

Language/C# 2021.04.23

(프로그래머스/C#) 기능개발

난이도: Level 2 프로그래밍 언어: C# 문제명: 기능개발 푼일자: 2021년 3월 문제 설명 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 기능보다 먼저 개발될 수 있고, 이때 뒤에 있는 기능은 앞에 있는 기능이 배포될 때 함께 배포됩니다. 먼저 배포되어야 하는 순서대로 작업의 진도가 적힌 정수 배열 progresses와 각 작업의 개발 속도가 적힌 정수 배열 speeds가 주어질 때 각 배포마다 몇 개의 기능이 배포되는지를 return 하도록 solution 함수를 완성하세요. 제한 조건 작업의 개수(progresses, speeds배열의 길이)는 1..

CodingTest 2021.03.11

(프로그래머스/C#) 두 정수 사이의 합

난이도: Level 1 프로그래밍 언어: C# 문제명: 2016년두 정수 사이의 합 푼일자: 2021년 1월 문제 설명 두 정수 a, b가 주어졌을 때 a와 b 사이에 속한 모든 정수의 합을 리턴하는 함수, solution을 완성하세요. 예를 들어 a = 3, b = 5인 경우, 3 + 4 + 5 = 12이므로 12를 리턴합니다. 제한 조건 a와 b가 같은 경우는 둘 중 아무 수나 리턴하세요. a와 b는 -10,000,000 이상 10,000,000 이하인 정수입니다. a와 b의 대소관계는 정해져있지 않습니다. 입출력 예 a b return 3 5 12 3 3 3 5 3 12 Solution.cs 123456789101112131415public class Solution { public long sol..

CodingTest 2021.03.03

모니터의 밝기를 System.Management 로 관리하기

Windows10 에서 모니터의 밝기를 조정하고 싶었습니다. Windows10 Desktop 뿐만아닌 IoT 버전에서도 적용하고 싶었고, 많은 시행착오끝에 성공했습니다. 아래 소스를 공개합니다. NuGet에서 System.Management를 설치해주셔야합니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87..

Language/C# 2021.02.18

String을 BCD로 변환하거나 BCD를 String으로 변환하기(이진화 십진법)

BCD(Binary-coded decimal)는 2진화 10진법으로 보통이면 ASCII 라고 하면 숫자를 하나 표현하는대 한 바이트를 사용합니다. 하지만 BCD를 사용하면 숫자 두개를 표현하는대 한 바이트를 사용할 수 있게 됩니다. 날짜를 표현하게 된다면 20010101231110 이라면 ASCII는 14바이트지만 BCD는 절반인 7바이트를 이용합니다. 바이트 하나하나를 절약하여 회선 비용을 절감하고싶거나, Serial 통신등 노이즈에 약한 통신방법을 이용하는 IoT나 소형 제품에 적용되는 데이터 형식이라고 생각합니다. BCD -> String 1 2 3 4 5 6 7 8 9 public static string BCDtoString(byte[] bcd) { StringBuilder temp = new ..

Language/C# 2021.02.18

(프로그래머스/C#) 가운데 글자 가져오기

난이도: Level 1 프로그래밍 언어: C# 문제명: 2016년 푼일자: 2020년 12월 문제 설명 단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다. 제한 조건 s는 길이가 1 이상, 100이하인 스트링입니다. 입출력 예 s return "abcde" "c" "qwer" "we" Solution.cs 1 2 3 4 5 6 7 8 9 10 using System; public class Solution { public string solution(string s) { while (true) { if (s.Length == 1 || s.Length == 2) return s; s = s.Substring(0, s.Lengt..

CodingTest 2021.02.07