Hex 데이터(16진수)를 String 으로 표현하는 방법
·
Language/C#
최근에 알개 된 방법입니다. 평소에는 logger.info($"data : {hexVal[0].toString("X2")}"); 이러한 식으로 표현했으나, logger.info($"data : {hexVal[0]:X2}"); 이러한 문법도 지원하는 것을 알았습니다.
C# NET 을 위한 Modbus Library 에 대한 간단한 고찰
·
일상다반사/개발
이 글에서 나오는 소스코드는 읽는이의 이해를 돕기 위해 필자가 직접 작성한 "손코딩" 이므로, 동작을 보장하지 않습니다. net452 를 대상으로 하는 SerialPort(RTU) 를 통한 모드버스 통신을 다음과 같은 라이브러리로 구현을 진행하였습니다. EasyModbus EasyModbus 는 간결하게 코드를 작성할 수 있도록 도와주고 있습니다. public class Modbus_Example { public Modbus_Example() { try { ModbusClient modbusClient = new ModbusClient("COM1"); modbusClient.UnitIdentifier = 2; modbusClient.Baudrate = 9600; modbusClient.Parity = S..
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 공개
·
Language/C#
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 예제이고 작동은 확인했으나..
String 으로된 Byte Array를 Byte[] 로 리턴받기
·
Language/C#
실무에서 사용했던 알고리즘입니다. 알고리즘 이랄게 없지만요;; 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 ..
(프로그래머스/C#) 기능개발
·
CodingTest
난이도: Level 2 프로그래밍 언어: C# 문제명: 기능개발 푼일자: 2021년 3월 문제 설명 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 기능보다 먼저 개발될 수 있고, 이때 뒤에 있는 기능은 앞에 있는 기능이 배포될 때 함께 배포됩니다. 먼저 배포되어야 하는 순서대로 작업의 진도가 적힌 정수 배열 progresses와 각 작업의 개발 속도가 적힌 정수 배열 speeds가 주어질 때 각 배포마다 몇 개의 기능이 배포되는지를 return 하도록 solution 함수를 완성하세요. 제한 조건 작업의 개수(progresses, speeds배열의 길이)는 1..
(프로그래머스/C#) 두 정수 사이의 합
·
CodingTest
난이도: 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..
CRC-16/ARC,AUC-CCITT,MODBUS 계산 소스코드
·
Language/C#
제가 갖고 있는 소스가 필요한분이 있으시다면, 가져다 쓰시라고 저장소에 올려 두었습니다. github.com/Kuass/CRC-16_Calc Kuass/CRC-16_Calc C#. Contribute to Kuass/CRC-16_Calc development by creating an account on GitHub. github.com
모니터의 밝기를 System.Management 로 관리하기
·
Language/C#
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..
String을 BCD로 변환하거나 BCD를 String으로 변환하기(이진화 십진법)
·
Language/C#
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 ..