Änderung des Open-Source-Python-2-Codes des Apogee-Sensors für den Betrieb auf Raspberry Pi 4 über den USB-AnschlussPython

Python-Programme
Anonymous
 Änderung des Open-Source-Python-2-Codes des Apogee-Sensors für den Betrieb auf Raspberry Pi 4 über den USB-Anschluss

Post by Anonymous »

Ich arbeite an einem Projekt, um mehrere Sensoren an Raspberry Pi 4 Model B anzuschließen und gesammelte Daten zur Speicherung/Berichterstellung/Analyse an die Google Cloud Platform zu streamen
Ich habe einen Apogee sq520 PAR-Sensor, der über USB angeschlossen wird und für den Betrieb unter Windows und Mac (aber nicht Linux) mit einer dazugehörigen GUI zum Anzeigen der Daten konzipiert ist. Ich habe den Sensor über den USB-Anschluss mit dem Raspberry PI verbunden (da die E/A-Pins nicht im Bild sind) und muss jetzt ein Programm schreiben, damit der Pi ihn lesen kann. Nachdem ich mich an das Apogee-Supportteam gewandt hatte, teilten sie mir den Quellcode mit (unten). Da ich jedoch ein absoluter Anfänger bin, fällt es mir schwer, den Code so zu ändern, dass er vom Raspberry Pi gelesen werden kann. Brauche jede Hilfe und Unterstützung, die ich bekommen kann.
Hinweise:
  • Code nutzt Pyserial-Bibliothek
  • Code ist auf Python 2.7 geschrieben (laut Website). - Ich verwende Python 3
  • Wenn ich den Code so kompiliere, wie er ist, erhalte ich viele Syntaxfehler, unabhängig davon, ob ich in Python 2 oder 3 kompiliere
  • Sensor wird über 5-V-USB angeschlossen
  • Weitere Informationen zum Sensor: https://www.apogeeinstruments.com/sq-52 ... escription
Code:

Code: Select all

from serial import Serial

from time import sleep

import struct

GET_VOLT = '\x55!'

READ_CALIBRATION = '\x83!'

SET_CALIBRATION = '\x84%s%s!'

READ_SERIAL_NUM = '\x87!'

GET_LOGGING_COUNT = '\xf3!'

GET_LOGGED_ENTRY = '\xf2%s!'

ERASE_LOGGED_DATA = '\xf4!'

class Quantum(object):

def __init__(self):

"""Initializes class variables, and attempts to connect to device"""

self.quantum = None

self.offset = 0.0

self.multiplier = 0.0

self.connect_to_device()

def connect_to_device(self):

"""This function creates a Serial connection with the defined comport

and attempts to read the calibration values"""

port = 'COM1' # you'll have to check your device manager and put the actual com port here

self.quantum = Serial(port, 115200, timeout=0.5)

try:

self.quantum.write(READ_CALIBRATION)

multiplier = self.quantum.read(5)[1:]

offset = self.quantum.read(4)

self.multiplier = struct.unpack('

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post