반응형
pyserial을 사용하고 있으며 255보다 작은 값을 보내야합니다. int 자체를 보내면 int의 ascii 값이 전송됩니다. 이제 int를 유니 코드 값으로 변환하고 직렬 포트를 통해 보냅니다.
unichr(numlessthan255);
However it throws this error:
'ascii' codec can't encode character u'\x9a' in position 24: ordinal not in range(128)
int를 유니 코드로 변환하는 가장 좋은 방법은 무엇입니까?
해결 방법
256보다 작은 한 int의 1 바이트 값을 얻으려면 chr (somenumber)
를 사용하십시오. 그러면 pySerial이 제대로 전송합니다.
pySerial을 통해 전송하려는 경우 표준 라이브러리의 struct 모듈을 살펴 보는 것이 매우 좋은 생각입니다. 이는 엔디안 문제를 처리하고 패킹 문제를 처리하고 거의 모든 데이터 유형에 대한 인코딩을 처리합니다. 1 바이트 이상이 필요할 수 있습니다.
참조 페이지 https://stackoverflow.com/questions/17627834
반응형
'파이썬' 카테고리의 다른 글
파이썬 Python에서 목록의 요소 위치를 찾는 방법은 무엇입니까? (0) | 2021.01.13 |
---|---|
파이썬 What's the fastest way in Python to calculate cosine similarity given sparse matrix data? (0) | 2021.01.13 |
파이썬 부울을 반환하려고 할 때 TypeError ( " 'bool'object is not iterable",) (0) | 2021.01.13 |
파이썬 이미지에서 텍스트 인식을위한 간단한 파이썬 라이브러리 (0) | 2021.01.13 |
파이썬 삼중 큰 따옴표 vs. 큰 따옴표 (0) | 2021.01.13 |
댓글