class DepthSensor:
    def __init__(self):
        self.sensor = ms5837.MS5837_30BA(
        )  # Default I2C bus is 1 (Raspberry Pi 3)
        self.client = Client(ports.DEPTH_DRIVER_PORT)
        self.logger = Logger(filename='depth')

    def run(self):
        # We must initialize the sensor before reading it
        if not self.sensor.init():
            print("Sensor could not be initialized")
            exit(1)

        # We have to read values from sensor to update pressure and temperature
        if not self.sensor.read():
            print("Sensor read failed!")
            exit(1)

        loop_condition = True
        while loop_condition:
            if self.sensor.read():
                self.client.send_data(self.sensor.pressure() * SCALETOCM)

                #print(self.sensor.pressure())
                msg = str(self.sensor.depth())
                self.logger.log(msg)
            else:
                loop_condition = False

    def __del__(self):
        pass
Example #2
0
class Torpedoes:
    is_ready = True

    def __init__(self):
        self.client_fire = Client(TORPEDO_FIRE_DRIVER_PORT)
        self.client_ready = Client(TORPEDO_READY_CLIENT_PORT)
        self.torpedo_handling = TorpedoHandling()

    def fire(self):
        command = self.client_fire.get_data()
        #print(command)
        if command == "FIRE" and self.is_ready:
            self.torpedo_handling.sequence()

            self.client_ready.send_data('WAIT')
            self.is_ready = False
            self.reload_torpedo()

    def reload_torpedo(self):
        reload_time = 2  # czas przeładowywania, do ustawienia
        """
        TUTAJ PRZEŁADOWANIE
        """
        time.sleep(
            reload_time)  # jak umiecie jakieś lepsze czekanie, to zmieńcie
        self.client_ready.send_data('READY')
        self.is_ready = True
class DepthSensor:
    def __init__(self):
        self.sensor = ms5837.MS5837_02BA(
        )  # Default I2C bus is 1 (Raspberry Pi 3)
        self.client = Client(DEPTH_DRIVER_PORT)

        self.logger = DEFLOG.DEPTH_LOCAL_LOG
        if self.logger:
            self.logger = Logger(filename='depth_sensor',
                                 directory=DEFLOG.LOG_DIRECTORY)

    def run(self):
        # We must initialize the sensor before reading it
        if not self.sensor.init():
            error = "Sensor could not be initialized"
            self.log(error, 'error')
            print(error)
            exit(1)

        # We have to read values from sensor to update pressure and temperature
        if not self.sensor.read():
            error = "Sensor read failed!"
            self.log(error, 'error')
            print(error)
            exit(1)

        loop_condition = True
        while loop_condition:
            if self.sensor.read():
                self.client.send_data(self.sensor.depth())

                msg = str(self.sensor.depth())
                if self.logger:
                    self.logger.log(msg)
            else:
                loop_condition = False

    def __del__(self):
        self.logger.exit()

    def log(self, msg, logtype='info'):
        if self.logger:
            self.logger.log(msg, logtype=logtype)
Example #4
0
class Sonar:
    def __init__(self, USB_device_adress=USB.SONAR):
        self.logger = DEFLOG.DISTANCE_LOCAL_LOG
        if DEFLOG.DISTANCE_LOCAL_LOG:
            self.logger = Logger(filename='front_distance',
                                 directory=DEFLOG.LOG_DIRECTORY)

        self.sensor = Ping1D(USB_device_adress, 115200)
        self.log("connected to the device")
        self.client = Client(DISTANCE_DRIVER_PORT)
        self.log("connected to the server")

    def run(self):
        # We must initialize the sensor before reading it
        if not self.sensor.initialize():
            error = "Sensor could not be initialized"
            print(error)
            self.log(error, 'error')
            exit(1)

        loop_condition = True
        while loop_condition:
            data = self.sensor.get_distance()
            if data:
                self.client.send_data(data["distance"] / 10)
                msg = str(data["distance"])
                self.log(msg)
            else:
                loop_condition = False
            time.sleep(0.035)

    def log(self, msg, logtype='info'):
        if self.logger:
            self.logger.log(msg, logtype=logtype)

    def __del__(self):
        pass
        if self.logger:
            self.logger.exit()