Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 9, 2016 13:17:16

MiMarch
Зарегистрирован: 2016-01-09
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите с COM port

Вот код, я передаю это на Arduino, можно ли как то избежать аски, или как мне потом перевести в int из ASCII, помогите нигде помочь не могут

import os
import sys
import serial
import datetime
ser = serial.Serial('COM4', 9600)
print(ser.name)
print(datetime.datetime.now())
date_string = str(datetime.datetime.now())
date_string = date_string[5:7] + date_string[8:10] + date_string[11:13] + date_string[14:16] + date_string[17:19]
DATE = date_string[:4]
TIME = date_string[4:8]
SEC = date_string[8:]
TIME_bytes = TIME.encode('ascii')
DATE_bytes = DATE.encode('ascii')
SEC_bytes = SEC.encode('ascii')
print(DATE)
print(TIME)
print(SEC)
print(date_string)
date_bytes = date_string.encode('ascii')
ser.write(TIME_bytes)
ser.write(DATE_bytes)
ser.write(SEC_bytes)
print('OK')
print(date_bytes)
print(len(date_bytes))
ser.close
Вот Arduino код
#include <TFT.h>
#include <SPI.h>
#define cs   10
#define dc   9
#define rst  8
TFT TFTscreen = TFT(cs, dc, rst);
char DATETIME[26];
void setup() {
  TFTscreen.begin();
  Serial.begin(9600);
}
void loop() {
  String ComData = String(Serial.parseInt());
  ComData.toCharArray(DATETIME, 4);
  
  delay(1000);
  TFTscreen.background(0, 0, 0);
  TFTscreen.stroke(255, 255, 255);
  TFTscreen.setTextSize(2);
  TFTscreen.text(DATETIME, 0, 20);
  delay(8000);
  if(Serial.available() > 0){
    Serial.print(DATETIME);
  }
}

Отредактировано JOHN_16 (Янв. 9, 2016 13:19:01)

Офлайн

#2 Янв. 9, 2016 13:22:54

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

Помогите с COM port

MiMarch
мда…я просто хочу спросить, а к чему вот эта вот конструкция?

MiMarch
TIME.encode('ascii')
как по вашему, какой тут смысл заложен?
MiMarch
нигде помочь не могут
кажется догадываюсь почему



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#3 Янв. 9, 2016 14:09:37

MiMarch
Зарегистрирован: 2016-01-09
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите с COM port

JOHN_16
MiMarchмда…я просто хочу спросить, а к чему вот эта вот конструкция?
Ну да я передаю только в ASCII на другое он ругается, так вот arduino на выходе получает b'1503', вместо 1503, как это исправить?

Офлайн

#4 Янв. 13, 2016 23:48:35

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

Помогите с COM port

MiMarch
b'1503', вместо 1503,
нет, передает он то что нужно. А после print() выглядит это именно так потому что Питон 3 акцентирует внимание что это набор байтов (т.е. тип данных bytes), а не unicode объект (строка).
Поэтому это исправлять не нужно, потому что нечего исправлять.
MiMarch
Ну да я передаю только в ASCII на другое он ругается
тут не в ascii дело, а в том что вы должны передать не строку,а набор байтов, в аспекте терминологии Python3



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version