Как получить данные имени изображения для отображения на шпатлевке, используя pyserial - PullRequest
0 голосов
/ 02 июля 2019

Я использую код для использования двух веб-камер и Raspberry Pi, чтобы сделать серию фотографий и сохранить их с восходящими именами. то, что я пытаюсь сделать, это получить либо увеличивающиеся имена картинок для отображения на замазке, либо что-либо связанное с картинками, так как для этого проекта мы используем pyserial, чтобы доказать, что программа работает, и так как мы используем картинки, нам нужны заголовки картинок или размер файла, чтобы показать на замазке. Я также использую fswebcam, если это поможет

То, что я уже пробовал, - это просто получение данных для отправки напрямую в putty, используя примеры кодов. Я также пытался кодировать и декодировать данные, но лучше всего получить его, так как он отображает / dev / ttyAMA0 в тоннах или что программа работает

import os
import datetime
import serial
import time
from threading import Thread
def picFunc():
    os.system("fswebcam -d /dev/video0 -r 1920x1080 -S 25 
/home/pi/Documents/Pictures/%s.jpeg" 
%datetime.datetime.utcnow().strftime("%Y-%m-%d-%H:%M:%S"))
    os.system("fswebcam -d /dev/video1 -r 1920x1080 -S 25 
 /home/pi/Documents/Pictures2/%s.jpeg" 
 %datetime.datetime.utcnow().strftime("%Y-%m-%d-%H:%M:%S"))
 t=5      # initialise the pause between pictures in seconds           
 count=10 # initialise the number of pictures to be taken
 i=1       # initialise (reset) the counting sequence
 totalTime=(t*count) # Calculate the time in seconds
ser = serial.Serial(
    port='/dev/ttyAMA0',
    baudrate = 1200,
    parity=serial.PARITY_NONE,
    stopbits=serial.STOPBITS_ONE,
    bytesize=serial.EIGHTBITS,
    timeout=1
    )
ser.xonxoff =False
ser.rtscts= False
ser.dsrdtr = False
try:
    ser.isOpen()
except Exception:
        print('error open serial port: ' + str(Exception))
         exit()
print(ser.portstr)
serialcmd = ('')
print(serialcmd)

#ser.write(bytes(str(serialcmd).encode(encoding='utf-8', 
errors='ignore')))
#out = ser.read(125).decode(encoding='ascii', errors='ignore')
#print('recevied:' + out)
# Take a series of pictures one every t seconds
while (i<=count):
    # initialise variables
    leftTimeH=0
    leftTimeM=0
    leftTimeS=0

    # taking a picture by calling a command line prompt
x=Thread(target=picFunc)
x.start()
totalTime=(t*(count-i))     # Calculate the time in seconds
print (i)       # print the current count value to show progress
while (totalTime>=3600):
        leftTimeH=leftTimeH+1
        totalTime=totalTime-3600
while (totalTime>=60):
        leftTimeM=leftTimeM+1
        totalTime=totalTime-60
leftTimeS=totalTime
percentDone=((i/count)*100)
percentDone=round(percentDone,2)
message1=("Time left to finish " +repr(leftTimeH) +" Hours " + 
repr(leftTimeM) +" Minutes and " + repr(leftTimeS) +" Seconds")
message2=(""+repr(percentDone) + "% Completed!")
print (message1)
print (message2)
ser.write(bytes(str(message1).encode(encoding='utf-8', 
errors='ignore')))
out = ser.read(125).decode(encoding='ascii', errors='ignore')
print('recevied:' + out)
i=i+1
time.sleep(t)  
print ("Finished!") # print to show when finished

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

% Запустите webcam.py / DEV / ttyAMA0 и это все

...