본문 바로가기

분류 전체보기

(335)
[Git]Learn Git Branching, 깃허브 배우기 https://learngitbranching.js.org/ Learn Git Branching An interactive Git visualization tool to educate and challenge! learngitbranching.js.org 공동업무에 사용하는 GIT을 제대로 배우기 위해! 다양한 Git의 명령어를 이미지와 함께 쉽게 배울 수 있는 사이트입니다. 업무에서 대참사를 막기 위해? 제대로, 그리고 확실히 Git을 배워보아요! ​ 연습 모드에서 쓸 수 있는 git명령어! - commit - branch - checkout - cherry-pick - reset - revert -merge
[C언어]리눅스 공유메모리(shared memory) 사용하기 ~ Linux내에서 공유메모리를 사용하는 코드입니다. 먼저, 공유메모리란 '컴퓨터 환경에서 여러 프로그램이 동시에 접근할 수 있는 메모리'입니다. (출처:위키백과) 즉 여러프로그램에서 동시에 접근할 수 있고, 같은 컴퓨터에서 동작하는 여러 프로그램간 데이터 통신에 사용하는데, 다른 통신이랑 비교하면 통신속도가 '없다'고 말해도 될정도로 빠른 데이터 전송이 가능하죠. 사실 데이터 통신이라기보단 같은 메모리를 사용하는거지만요. 공유메모리에 대한 더 자세한 내용은 구글에 검색해보시고! 저는 리눅스에서 공유메모리를 사용하는 예제를 작성해보겠습니다. ~ ~ Read.C 코드 int h_A; int *b_A; void CloseUI() { if (b_A != NULL) if( -1 == shmdt( b_A )) p..
[C언어]리눅스 모드버스 RTU modbus slave 프로그램 (RS485) ~ 485통신을 하는 마스터기기를 이용하여 데이터를 읽어올 수 있게한 프로그램입니다. 모드버스 RTU 마스터프로그램을 이용하여 Fnc3(read register)를 이용하면 원하는 데이터값을 출력해줍니다. 점점 한국어자료가 없어지더니 이번글은 아에 영어자료만 보고 작성했네요 ~ ~ 코드 modbus_t *ctx; modbus_mapping_t *mb_mapping; int rc; ctx = modbus_new_rtu("/dev/ttyUSB1", 38400, 'N', 8, 1); modbus_set_slave(ctx, 1); modbus_connect(ctx); mb_mapping = modbus_mapping_new(MODBUS_MAX_READ_BITS, 0, MODBUS_MAX_READ_REGISTER..
[C언어]리눅스/윈도우 호환 프로그래밍 기타 팁 ~ 윈도우와 리눅스 호환 프로그래밍을 작성할때 찾았던 자료들을 여러개 올려보겠습니다. 정보 공유라기보다 개인 자료정리의 의미가 더 크니, 자료를 보시고 궁금한게 있음 물어봐주세요! ~ ~ 1.공유 라이브러리 함수 관련 (dllexport, dllimport) 출처 : https://stackoverflow.com/questions/2164827/explicitly-exporting-shared-library-functions-in-linux #if defined(_MSC_VER) // Microsoft #define EXPORT __declspec(dllexport) #define IMPORT __declspec(dllimport) #elif defined(__GNUC__) // GCC #define E..
[C언어]조건부로 linux, Win32 컴파일 - ifdef 이용 ~ 리눅스와 윈도우에서 같이 사용해야할 코드를 전혀 두 코드에서 호환시킬 수 없는경우 이런 경우에는 어쩔 수 없이 2개의 코드를 짜야하는데, 그렇다고 2개의 소스 파일을 만들기에는 파일을 관리하기가 힘들겠죠? 그럴경우 ifdef를 이용해서 현재 운영체제에 따라 원하는 부분만 컴파일하게 하면 됩니다! 이런 조건부 컴파일에 대한 예제는 정말 짧고 간단함으로, 짧게 예시만 보여주고 글 마치겠습니다. ~ #ifdef WIN32 // Windows system specific #include 윈도우코드 #else // Unix based system specific #include 리눅스코드 #endif
[C언어]window mutex, linux mutex 코드 비교 ~ 리눅스와 윈도우에서 호환되는 뮤텍스를 사용하고 싶은경우 윈도우 운영체제에서 리눅스에서 사용되는 pthread.h를 다운받아서 프로그래밍하면 편해요! 하지만 이미 windows.h를 이용해 프로그래밍을 하신 분들을 위해 windows.h -> pthread.h 로 코드를 변경한 예를 보여드릴게요. ~ #include HANDLE hMutex; DWORD wait_result; hMutex = CreateMutex(NULL, FALSE, LOG_MUTEX_NAME); if (hMutex == NULL) { return; } wait_result = WaitForSingleObject(hMutex, 10000); if (wait_result != WAIT_OBJECT_0) { CloseHandle(hMut..
[C언어]리눅스 Modbus통신 RS485 Write register 요즘 자동화 설비를 안쓰고 맨손으로 무언가를 제작하는 회사는 찾기 힘들죠? 이런 자동화 설비들에는 거의 'ModBus통신'으로 통신이 가능하게 설계되어 있습니다. 그럼 이번시간에는, 리눅스 운영체제에서 Modbus로 값을 읽어오는 'Write register'에 대한 코드를 살펴보겠습니다. (Write register와 Write registers는 다른 함수입니다. s조심!!) ~~~ ~ 코드 #include #include #include #include #include #include #include #include #include #include enum {TCP, RTU}; int main(void) { int a, StationID, setdata; uint16_t test, Address; ..
[C언어]리눅스 Modbus통신 RS485 Read input registers 요즘 자동화 설비를 안쓰고 맨손으로 무언가를 제작하는 회사는 찾기 힘들죠? 이런 자동화 설비들에는 거의 'ModBus통신'으로 통신이 가능하게 설계되어 있습니다. 그럼 이번시간에는, 리눅스 운영체제에서 Modbus로 값을 읽어오는 'Read input registers'에 대한 코드를 살펴보겠습니다. 리눅스 운영체제로 Modbus통신하는것이 한글자료가 하~나도 없어서 자료를 찾는것이 어려웠네요 ㅜ 암튼 시작해보죠! ~~~ ~ 코드 #include #include #include #include #include #include #include #include #include #include enum {TCP, RTU}; int main(void) { int a; uint16_t test; modbus_t ..