1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 QString GetEncHmacSHA256Msg() { QByteArray Key = "testKey"; QString strValue, strHex; QByteArray baValue, baEncData; strValue.sprintf("%s|%s", Data, SerialNo); baValue = strValue.toUtf8(); // HmacSHA256으로 암호화 baEncData = QMessageAuthenticationCode::hash(baValue, Key, QCryptographicHash::Sha256); // Hex값을 String으로 변환 strHex = QString(baEncData.toHex..
안녕하세요 드레이크입니다^^ 지난글에 이어 이번에는 libmodbus를 활용하여 Slave를 구성해보도록 하겠습니다. 못 보신 분들은 아래 링크를 참고해주세요! https://gosuway.tistory.com/374?category=754463 modbus tcp Master (libmodbus 라이브러리) 안녕하세요 드레이크입니다^^ 이번에 modbus tcp를 연동하는 프로젝트를 진행하게 되어 modbus를 처음 접하게 되었는데요 처음에는 아래 사이트를 통해 개념을 숙지하였구요 http://comfilewiki.co.kr/ko/dok gosuway.tistory.com Slave는 TCP 소켓 통신에서 서버 개념과 같다고 볼 수 있습니다. 아래는 실제 사용한 소스코드이니 참고하시면 도움이 되실겁니다..
안녕하세요 드레이크입니다^^ 프로그램은 하나인데 메인보드의 종류가 여러개일때 네트워크 설정 및 통신에 문제가 생길 수 있습니다. 그럴때 프로그램 시작시 네트워크 디바이스명을 알아오게 해서 동작하게 하면 이 문제를 해결할 수 있습니다! 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 #include void GetNetworkDeviceName() { int32_t i = 1; struct ifaddrs *addrs,*tmp; bzero(Cache.NetworkDeviceName, sizeof(Cache.NetworkDeviceName)); getifaddrs(&addrs); tmp = addrs; while (tmp) ..
1234567891011121314#include // 어제 날짜 구하기time_t timer;struct tm t; // 하루 빼기timer = time(NULL) - (24 * 60 * 60); // 다중 쓰레드를 사용하는 프로그램에서는 localtime()이 아니 localtime_r() 써야 동작이 보장된다!!localtime_r(&timer, &t); // 영업일자는 어제로 저장sprintf(SaleDate, "%04d%02d%02d", t.tm_year + 1900, t.tm_mon + 1, t.tm_mday);cs
안녕하세요 드레이크입니다^^ 이번에 modbus tcp를 연동하는 프로젝트를 진행하게 되어 modbus를 처음 접하게 되었는데요 처음에는 아래 사이트를 통해 개념을 숙지하였구요 http://comfilewiki.co.kr/ko/doku.php?id=tcpport:modbus-tcp_%ED%94%84%EB%A1%9C%ED%86%A0%EC%BD%9C%EC%9D%B4%EB%9E%80:index tcpport:modbus-tcp_프로토콜이란:index [Comfile Technology's Online Documentation] MODBUS-TCP란 MODBUS-TCP는 산업용 필드버스 분야에서 자주 사용되는 통신 프로토콜 입니다. TCP/IP 네트워크 상에서 상위장치와 하위장치간의 인터페이스를 위하여 고안된 ..
위와 같이 폼에 TextBox, Button, WebBrowser 컴포넌트를 올려 놓습니다. 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 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace WinFormTest { public partial class Mai..
폼위에 DateTimePicker와 Button 컴포넌트를 올려놓습니다. DateTimePicker 속성 중 CustomerFormat 속성을 변경합니다. 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 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; name..
위와 같이 ComboBox와 Button을 폼위에 올려놓습니다. ComboBox의 DropDownStyle은 가장 많이 사용하는 DropDownList로 선택해주세요 이렇게 설정해야만 실행 시 ComboBox 선택 했을때 항목을 지우지 못하게 할 수 있습니다. 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 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using Syste..
CheckListBox 컴포넌트를 폼위에 올려주고 아래와 같이 입력합니다. 폼 로드 시 항목을 추가하였고 다중 선택 후 버튼을 누르면 항목을 메시지 박스로 표시해주었습니다. namespace WinFormTest { public partial class MainForm : Form { public MainForm() { InitializeComponent(); } private void MainForm_Load(object sender, EventArgs e) { // 항목 추가 ChkList.Items.Add("바나나"); ChkList.Items.Add("사과"); ChkList.Items.Add("포도"); ChkList.Items.Add("망고"); ChkList.Items.Add("수박"); /..
- Total
- Today
- Yesterday