안녕하세요.
1. 그 문장은 시그널 선언입니다. received_data라는 이름의 QByteArray 데이터 형을 전달하는 시그널을 만들어 줍니다. https://github.com......L62
에서 데이터를 전송 받았을때 emit을 통하여 데이터를 시그널로 쏴줍니다. 누가 연결 되어있건간에 데이터 형식만 맞는 슬롯이라면 데이터를 받을 수 있겠지요.
2. 간단한 데이터 통신 프로토콜의 헤드입니다. 쓰든 안쓰든 상관없지만 아스키 코드표를 참고하시면 알 수 있습니다. http://zapiro.tistory.com......%9C
STX, ETX를 사용하였습니다. 시리얼 통신으로는 데이터의 시작부분과 끝부분을 정확히 알 수 없기 때문에 시작과 끝을 검사하여 데이터를 받습니다. 다른 경우로는 0x0d 0x0a를 데이터 끝으로 잡기도 하고요.
너무너무 감사한 자료 감사합니다.
열심히 코드를 이해하고 있는데 아주 작은 질문 두개만 드립니다 ㅠ 찾아봐도 안나오네요 ㅠ 감사합니다!
1. received_data=pyqtSignal(QByteArray, name=rrceivedData")
이 문장이 해석해주시면안될까요 ㅠ 예를들면
self.pb.clicked.connect(self.A) 가 pb를 클릭하면 A라는 슬롯을 발생시켜라 라고 해석하는 것처럼요 ㅠ 저부분이 이해가 안되네요
2. bytes([0x02]) 가 무엇인가요??
bytes("abc","utf-8") 은 abc 를 utf8로 인코딩한 바이트 열 이란걸 알겠는데 0x02는 모르겠네요 ㅠ 감사합니다
네에. 경고 메세지가 뜨는 이유가 있습니다만, 제가 다음 예제에 적으려고 그냥 두었습니다. 실제 데이터를 주고 받는데는 문제가 없습니다. PyQt는 C++로 만들어져 있는 라이브러리를 사용합니다. Python 타입으로 C++ 타입의 무언가를 호출하려하니 중간에서 사실 처리는 해주고 있지만 경고를 보여 주는 것입니다.
안녕하세요 window에서 위 코드를 작성 후 실행하니 터미널에서 이런 메세지가 나오는데 신경 안써도 되는 것인가요? 두개를 띄워서 서로 sending하는데는 문제가 없었습니다.
Trying to create a QVariant instance of QMetaType::Void type, an invalid QVariant will be constructed instead
C#을 배우는 도중에 파이썬으로 넘어온 거라... 컴파일한 적이 없는데도 컴파일이라는 단어를 쓴 것 같습니다. 이해해주시기 바랍니다.
올려주신 코드를 복사하여 우분투에 깔려있는 편집기(Idle, Spyder 둘 다 테스트)에 붙여넣기 후 세이브 했습니다. 그리고 실행버튼을 눌러 실행한 것입니다. 원래 윈도우에서 이렇게 하면 창이 뜨는데 리눅스에서는 PyQt5.QtSerialPort 모듈이 없다는 메시지가 뜹니다.
그래서 오류 매시지를 구글링해보니 아래와 같이 조치를 취하라고 나옵니다. 1번은 하라는대로 설치했는데 2번과 3번은 무슨 말인지 조차 감이 안옵니다...
그런데 리눅스 버전 중 하나인 우분투에서 컴파일하고 실행하려 하니 아래와 같은 오류를 뿜어냅니다.
Python 3.6.5 (default, Apr 1 2018, 05:46:30)
Type "copyright", "credits" or "license" for more information.
IPython 5.5.0 -- An enhanced Interactive Python.
? -> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help -> Python's own help system.
object? -> Details about 'object', use 'object??' for extra details.
저울과 통신할 수 있는 API를 지원하는 저울이 있다면 접속하여 데이터를 가져올 수 있겠네요. Serial란에 댓글을 올리신것으로 보아 Serial통신으로 가져올 수 있는지를 여쭈어 보신거라면 해당 저울이 RS232통신등이 가능해야 하며 저울 Firmware단에서 그것을 지원해 줘야 합니다.
예전 직장에서도 저울을 만들 때 사용하는 로드셀의 데이터를 PyQt 등을 이용하여 표출하였습니다. 모든건 장치에서 지원하느냐에 달려있지요.