그래블로 도움말 그래블로 도움말
  • 학습하기
    • 빠른 시작 가이드
    • 사용자 메뉴얼
    • 예제
    • 유용한 정보
  • 새 소식
  • 그래블로 홈
  • 그래블로 앱
문의하기
그래블로 도움말 그래블로 도움말
문의하기
그래블로 도움말 그래블로 도움말
  • 학습하기
    • 빠른 시작 가이드
    • 사용자 메뉴얼
    • 예제
    • 유용한 정보
  • 새 소식
  • 그래블로 홈
  • 그래블로 앱
loading
  1. Home
  2. 학습하기
  3. 사용자 매뉴얼
  4. 로직
  5. 동작
  6. 타입
  7. 사용자 정의 통신
Updated on 5월 5, 2025

학습하기

  • 빠른 시작 가이드
    • 그래블로
    • 기본 개념
    • 예제 프로젝트
  • 사용자 매뉴얼
    • 프로젝트
      • 일반
      • 공유
    • 로직
      • 로직
      • 제어그룹
      • 제어
      • 조건그룹
      • 동작그룹
      • 조건
        • 일반
        • 타입
          • 항상 만족
          • 한번만 만족
          • 변수값 비교
          • 스케쥴
          • 시간 구간
          • 시간 주기
          • 조건 참조
          • 동작 참조
          • 변경 감지
          • 사용자 조건
      • 동작
        • 일반
        • 타입
          • 변수 쓰기
          • I/O장치 제어
          • 시간 지연
          • 타이머
          • 미디어 재생
          • 이미지 보기
          • 전자 악기 연주
          • SHELL 명령 실행
          • 오디오 녹음
          • 오디오 변조
          • 음성 텍스트 변환
          • 텍스트 음성 변환
          • 파일 시스템
          • 파일 읽기/쓰기
          • 데이터베이스
          • HTTP 통신
          • MQTT 통신
          • OPC UA 통신
          • 모드버스 통신
          • 이메일 보내기
          • 텔레그램 메시지
          • 사용자 정의 통신
          • PID 제어
          • 통계 계산
          • 컬렉션
          • 사용자 동작
    • 대시보드
      • 일반
      • 위젯
    • 설정
      • GPIO
      • 변수
      • I/O장치
      • 파일 편집기
      • 컬렉션
      • 타이머
      • 이미지 뷰어
      • 오디오 변조
      • 미디어 플레이어
      • 전자 악기
      • 텍스트 음성 변환
      • 음성 텍스트 변환
      • 오디오 녹음기
      • MQTT 클라이언트
      • OPC UA 클라이언트
      • 모드버스
      • 이메일 클라이언트
      • 텔레그램 봇
      • 데이터베이스
      • 사용자 정의 통신
      • PID 제어
      • 통계
    • 연결 및 실행
      • 하드웨어 및 운영체제
      • 그래블로 패키지 설치
      • 연결 및 실행
  • 예제
    • 초급
      • LED 깜박이기
      • LED 3개를 다른 간격으로 깜빡이기
      • 조건 옵션 활용하기
      • 대시보드 위젯 사용하기
    • 중급
      • 다양한 조건을 조합하기
      • 복잡한 동작을 실행하기
  • I/O장치
    • DS18B20 디지털 온도 센서
    • MAX31865 RTD 온도 센서
    • TinyGPS ++ GPS 라이브러리
    • BMP180 디지털 대기압, 온도 센서
    • AHTx0 온도, 습도 센서
    • SHT2x 온도, 습도 센서
    • 서보 모터 제어
    • PWM 신호 출력
    • PWM 신호 모니터링
    • 하드웨어 PWM 신호출력
    • LED 켜기/끄기
    • 푸시버튼 읽기
    • 디지털 읽기/쓰기
    • 스텝 모터 제어
    • 고속 카운터
    • ADS1x15 ADC 변환 모듈
    • ADXL345 3축 가속도 센서
    • BME280 온도, 습도, 대기압센서
    • BMP280 온도, 대기압 센서
    • MLX90614 비접촉식 적외선 온도 센서
    • MCP4725 DAC 모듈
    • HMC5883 3축 지자기 센서
    • SHT31 디지털 온습도 센서
    • TCS34725 RGB 컬러 센서
    • VEML6070 자외선 센서
    • BH1750 디지털 조도센서
    • DS3231 RTC 고정밀 리얼타임 클럭
    • MPU-9250 9축 IMU 센서
    • CCS811 이산화탄소 및 TVOC 공기품질 센서
    • VL53L0X ToF 레이저 거리 센서
    • TFmini Plus(S) LiDAR 거리 센서
    • MAX7219 8자리 7세그먼트 디스플레이
    • PCF8574 LCD 디스플레이 드라이버
    • HC-SR04 초음파 거리센서
    • LED 밝기 제어
    • RGB LED 색상 제어
    • DC 모터 제어
    • AT24C256 EEPROM 메모리 모듈
    • DHTxx 온습도 센서
    • MCP3xxx ADC 모듈
    • LCD 디스플레이 드라이버(MCP23008, MCP23017)
    • MFRC522 RFID 리더
    • 수동 부저
    • 네오픽셀 (WS281x) LED
    • 적외선(IR) 리시버
    • 네오픽셀 매트릭스
    • ST77xx TFT 컬러 LCD 모듈
    • ILI9341 TFT 컬러 LCD 모듈
    • SSD1306 0.96인치 단색 OLED 디스플레이
    • SH1106 1.3인치 단색 OLED 디스플레이
    • MAX7219 8×8 LED 도트 매트릭스
    • HT16K33 4자리 7세그먼트 디스플레이
    • HX711 로드셀 측정 24비트 AD컨버터
    • TCS3200 RGB 컬러센서
    • MPU6050 6축 자이로 가속도 센서
    • TM1637 4자리 7세그먼트 디스플레이
    • PM2008(M) 미세먼지 측정 센서
    • PMS x003 미세먼지 측정 센서
    • MAX30102 산소 포화도, 심박수 측정 센서
    • AS608, FPM10A 지문 인식 센서
    • TTP229 정전식 16키 터치 키패드
    • 4×4 키패드 매트릭스
    • 아날로그 입력
    • 아날로그 출력
    • RPM 모니터
    • PCA9685 16채널 12비트 PWM 서보 드라이버
    • INA219 DC 전류 센서 모듈
    • VL6180X ToF 거리 센서
    • 사용자 정의 디지털 파형 출력
    • NRF24L01 2.4GHz RF통신모듈
  • 블록 코딩
    • 일반
    • 블록
      • 일반
      • 논리
      • 반복
      • 수학
      • 날짜/시간
      • 텍스트
      • 바이트 배열
      • 리스트
      • 타입 변환
      • 단위 변환
      • 자연/과학
      • 비트/바이트
      • 복소수/벡터
      • JSON
      • XML
      • 지역 변수
      • 지역 함수
  • 유용한 정보
    • 기초지식
      • 비트와 바이트
      • 디지털 입력/출력
      • 디지털/아날로그 신호
      • LED 저항 용량 계산하기
      • 풀업/풀다운 저항
      • 3.3V <-> 5V 변환
      • 시리얼 통신 (UART)
      • DC모터, 서보모터, 스텝모터
      • 멀티 쓰레드 (Multi Thread)
      • 릴레이 (Relay)
    • 하드웨어
      • 라즈베리파이
        • GPIO
        • 운영체제 설치하기
        • 1-Wire핀을 변경하는 방법
        • I2C 장치의 주소를 찾는 방법
        • 라즈베리파이 vs 아두이노
        • VNC로 데스크탑 환경 사용하기
        • 시리얼 (UART) 포트
      • 비글본
        • GPIO
        • 운영체제 설치하기
      • 확장 GPIO
        • FT232H/FT2232H/FT4232H
        • MCP2221A
        • NUMATO USB-GPIO
    • 리눅스
      • 리눅스 디렉토리 구조
      • 리눅스 자동 로그인 설정하기
      • 윈도우에 리눅스 설치하기 (가상 머신)
      • 맥OS에 리눅스 설치하기 (가상머신)
      • SSH 서버 설치하기
      • 컨트롤러의 IP 주소를 모를 때
      • SSH 접속하기
      • PC, 컨트롤러 사이 파일 전송하기
      • “sudoer 설정 파일에 없습니다.” 오류 발생시
    • 오디오/비디오
      • 가상머신에서 USB 사운드 카드의 사운드가 끊기는 문제
      • 블루투스 스피커로 사운드 출력하기
      • 음원 파일에서 악기 선택하기
      • “Failed to create new vlc instance.” 에러가 발생하는 경우
    • 데이터베이스
      • Firebase DB 사용하기
    • IOT
      • OpenAI TTS 사용하기
      • ElevenLabs TTS 사용하기
      • 텔레그램 봇 사용하기

사용자 정의 통신

Estimated reading: 1 minute 226 views

사용자가 직접 통신 프로토콜을 정의하여 통신하는 동작입니다. 시리얼 통신, TCP, UDP, 웹소켓, 공유 메모리, 블루투스를 사용하여 통신할 수 있습니다.



[사용자 정의 통신 선택]

사용할 사용자 정의 통신을 선택합니다.

사용자 정의 통신은 선택 창 또는 [설정] -> [사용자 정의 통신] 에서 추가, 편집, 삭제할 수 있습니다.



[명령]

사용할 명령을 선택합니다.

  • 보내기 : 설정한 데이터 프레임을 송신합니다.

  • 받기 : 데이터를 수신합니다.



[수신 완료]

수신 완료 변수를 선택합니다. 데이터 수신이 완료되면 해당 변수가 true로 변경됩니다. [명령]이 “받기”인 경우에만 표시됩니다.


[프레임]

보내거나 받을 데이터 프레임을 구성합니다. 프레임은 아래와 같은 역할을 합니다.

  • 데이터를 보낼때
    • 보낼 데이터를 구성합니다.
    • 상수, 변수, 무결성 검사 데이터를 포함할 수 있습니다.
    • 변수가 포함된 경우, 보내는 시점의 변수 값이 사용됩니다.
    • 무결성 검사 데이터가 포함된 경우, 보내는 데이터의 무결성을 검사하고 계산 결과를 프레임에 포함합니다.

  • 데이터를 받을때
    • 받은 데이터와 프레임 데이터를 비교하여 일치하는지 체크합니다.
    • 상수, 변수, 무결성 검사 데이터를 포함할 수 있습니다.
    • 변수가 포함된 경우, 받은 데이터를 파싱 (Parsing)하여 해당 값을 변수에 저장합니다.
    • 무결성 검사 데이터가 포함된 경우, 받은 데이터의 무결성 검사를 진행하여 결과가 일치하는지 체크합니다.



> [이름]

데이터의 이름을 입력합니다. 임의의 이름을 사용할 수 있습니다.


> [타입]

데이터의 타입을 선택합니다.

  • 디지털 : 디지털 타입의 상수로 true 또는 false 입니다.

  • 숫자 : 숫자 타입의 상수입니다. 바이트 크기, 정수/실수 등 숫자 형식을 지정할 수 있습니다.

  • 텍스트 : 텍스트 타입의 상수입니다.

  • 바이트 배열 : 바이트 배열 타입의 상수입니다.

  • 변수 : [디지털], [숫자], [텍스트], [바이트 배열] 타입의 변수만 선택할 수 있습니다.

  • 무결성 검사 : 데이터의 에러를 체크하고 무결성을 검사합니다. 다양한 계산 방식을 제공합니다.



> [값]

상수 값을 입력합니다. [타입] “디지털”, “숫자”, “텍스트”, “바이트 배열”인 경우에만 표시됩니다.


> [숫자 형식]

숫자의 형식을 선택합니다. [타입]이 “숫자” 인 경우에만 표시됩니다.


> [바이트 크기 모름]

수신할 데이터의 바이트 크기를 모르는 경우 체크합니다. [명령]이 “받기”이고 [타입]이 “변수”인 경우에만 표시됩니다. 바이트 크기를 모르는 변수는 프레임에 1개만 존재할 수 있습니다.


> [바이트 크기]

수신할 데이터의 바이트 크기를 입력합니다. 해당 크기만큼 파싱 (Parsing)하여 변수에 저장합니다. [명령]이 “받기”이고 [타입]이 “변수인 경우에만 표시됩니다.


> [바이트 역순]

보내거나 받을 데이터의 바이트 순서를 반대로 변경합니다. 통신할 상대방과 바이트 순서 (엔디언, Endian) 처리 방식이 다를 경우 사용합니다. 상수 또는 변수의 타입이 “숫자”, “텍스트”, “바이트배열” 인 경우에만 표시됩니다.


> [검사 방법]

프레임 데이터의 무결성 검사 방법을 선택합니다. [시작 데이터] 부터 [종료 데이터] 까지 무결성을 검사합니다. [타입]이 “무결성 검사” 인 경우에만 표시됩니다.

  • BYTE SUM: 데이터의 모든 바이트를 더해 합계를 계산합니다.

  • WORD SUM: 데이터의 워드(16비트 단위)를 더해 합계를 계산합니다.

  • BYTE XOR: 데이터의 모든 바이트를 XOR 연산으로 누적합니다.

  • 7BIT SUM: 각 데이터 바이트에서 상위 1비트를 제거하고 남은 7비트만 더해 합계를 계산합니다.

  • 7BIT XOR: 각 데이터 바이트에서 상위 1비트를 제거하고 남은 7비트만 XOR 연산으로 누적합니다.

  • 7BIT SUM (0x20 이상): 데이터 바이트 중 값이 0x20(공백) 이상인 바이트만 7비트를 사용해 합산합니다.

  • BYTE SUM (2의 보수): 모든 바이트를 더한 후 합계를 2의 보수로 변환하여 체크값을 계산합니다.

  • BYTE SUM (1의 보수): 모든 바이트를 더한 후 합계를 1의 보수(비트 반전)로 변환하여 체크값을 계산합니다.

  • CRC16 STANDARD: 표준 다항식을 기반으로 16비트 순환 중복 검사(CRC)를 계산합니다.

  • CRC16 CCITT: CCITT 표준 다항식(0x1021)을 기반으로 16비트 CRC를 계산합니다.

  • CRC16 MODBUS: Modbus 프로토콜에 사용되는 다항식(0x8005)을 기반으로 16비트 CRC를 계산합니다.



> [시작 데이터]

무결성 검사의 시작 데이터를 선택합니다. [타입]이 “무결성 검사” 인 경우에만 표시됩니다.


> [종료 데이터]

무결성 검사의 종료 데이터를 선택합니다. [타입]이 “무결성 검사” 인 경우에만 표시됩니다.


> [ASCII로 변환]

무결성 계산 데이터를 ASCII로 변환합니다. 예를 들어 계산 결과가 16진수 0x9C 라면 문자열 “9C”로 변경합니다. [타입]이 “무결성 검사” 인 경우에만 표시됩니다.

찾으시는 내용이 없나요? 문의하기

문의하기

공유하기

사용자 정의 통신

Or copy link

Clipboard Icon
콘탠츠

ㅤ

대전광역시 서구 둔산로 8
(주)그래블로
support@grablo.co

바로가기

  • 빠른 시작 가이드
  • 메뉴얼
  • 예제
  • 유용한 정보
  • 새 소식
  • 그래블로 홈
  • 그래블로 앱
  • 문의하기

관련 사이트

  • 유튜브
  • 인스타그램
  • 페이스북

약관 및 라이센스

  • 서비스 이용약관
  • 개인정보 처리방침
  • 오픈소스 라이센스

이 사이트의 모든 컨텐츠는 저작권법에 보호받는 저작물로서, 무단으로 복제, 배포하는 경우에는 저작권법에 의하여 처벌을 받을 수 있습니다. Copyright 2024 grablo.co. All Rights Reserved.