Beispiel #1
0
    def process(self, data):
        # avoid processing empty data
        if not data:
            # self.log.error('Ignoring empty data processing')
            return

        # self.log.debug('Processing {data}'.format(data=data))

        tokens = data.split(DELIMITER)
        sensor_data = SensorData(tokens)

        # if file not created then create it.
        # Stop gap fix for date & time not set in Atheros
        # Sync the time between Atheros and ATMega
        # UPODXX... xx has to be replaced with POD serial number
        if not self._file:
            dt = float(tokens[DATE_TIME])
            # sychronize Atheros system clock with ATMega
            self.sync_datetime(dt)
            #filename = datetime.fromtimestamp(dt).strftime('UPODXX%d%m%y.txt')
            filename = tokens[0] + '.txt'
            # self.log.info('Created file: {name}'.format(name=filename))
            self._file = TxtWriter(filename)  # RotatingTxtWriter(filename)

        # pprint(vars(sensor_data))
        # pprint(vars(sensor_data.GpsData))
        # print data
        #status = False
        #while not status:
        status = self._file.write(sensor_data)
    def process(self, data):
        # avoid processing empty data
        if not data:
            # self.log.error('Ignoring empty data processing')
            return

        # self.log.debug('Processing {data}'.format(data=data))

        tokens = data.split(DELIMITER)
        sensor_data = SensorData(tokens)

        # if file not created then create it.
        # Stop gap fix for date & time not set in Atheros
        # Sync the time between Atheros and ATMega
        # UPODXX... xx has to be replaced with POD serial number
        if not self._file:
            dt = float(tokens[DATE_TIME])
            # sychronize Atheros system clock with ATMega
            self.sync_datetime(dt)
            #filename = datetime.fromtimestamp(dt).strftime('UPODXX%d%m%y.txt')
            filename = tokens[0] + '.txt'
            # self.log.info('Created file: {name}'.format(name=filename))
            self._file = TxtWriter(filename) # RotatingTxtWriter(filename)

        # pprint(vars(sensor_data))
        # pprint(vars(sensor_data.GpsData))
        # print data
        #status = False
        #while not status:
        status = self._file.write(sensor_data)
Beispiel #3
0
class DataProcessor(threading.Thread):
    """
    Data processor
    """
    def __init__(self,
                 group=None,
                 target=None,
                 name=None,
                 args=(),
                 kwargs=None,
                 verbose=None,
                 event=None,
                 bridge=None):
        super(DataProcessor, self).__init__()
        self.target = target
        self.name = name
        self.setDaemon(True)
        self.event = event
        # self.log = logging.getLogger(__name__)
        self.TxtFileCreated = False
        self._file = None
        self.channel = bridge

    def run(self):
        # get data and process it
        while True:
            # wait for the data to be put in queue
            # if queue is empty. Otherwise process queue
            if queue.empty():
                # self.log.info('Waiting for data to be populated into the queue')
                self.event.wait()

            data = queue.get()
            self.process(data)

    def process(self, data):
        # avoid processing empty data
        if not data:
            # self.log.error('Ignoring empty data processing')
            return

        # self.log.debug('Processing {data}'.format(data=data))

        tokens = data.split(DELIMITER)
        sensor_data = SensorData(tokens)

        # if file not created then create it.
        # Stop gap fix for date & time not set in Atheros
        # Sync the time between Atheros and ATMega
        # UPODXX... xx has to be replaced with POD serial number
        if not self._file:
            dt = float(tokens[DATE_TIME])
            # sychronize Atheros system clock with ATMega
            self.sync_datetime(dt)
            #filename = datetime.fromtimestamp(dt).strftime('UPODXX%d%m%y.txt')
            filename = tokens[0] + '.txt'
            # self.log.info('Created file: {name}'.format(name=filename))
            self._file = TxtWriter(filename)  # RotatingTxtWriter(filename)

        # pprint(vars(sensor_data))
        # pprint(vars(sensor_data.GpsData))
        # print data
        #status = False
        #while not status:
        status = self._file.write(sensor_data)
        #print status
        # self.channel.put('status', 'T' if status else 'F')

    def sync_datetime(self, dt):
        import os
        # see if i need to set hardware clock or system clock
        fdt = datetime.fromtimestamp(dt).strftime('%Y-%m-%d %H:%M:%S')
        # self.log.info('Setting Atheros date time: {stamp}'.format(stamp=fdt))
        os.system('date -s "{stamp}" > /dev/null 2>&1'.format(stamp=fdt))
class DataProcessor(threading.Thread):
    """
    Data processor
    """
    def __init__(self, group=None, target=None, name=None,
                 args=(), kwargs=None, verbose=None, event=None, bridge=None):
        super(DataProcessor,self).__init__()
        self.target = target
        self.name = name
        self.setDaemon(True)
        self.event = event
        # self.log = logging.getLogger(__name__)
        self.TxtFileCreated = False
        self._file = None
        self.channel = bridge

    def run(self):        
        # get data and process it
        while True:
            # wait for the data to be put in queue
            # if queue is empty. Otherwise process queue
            if queue.empty():
                # self.log.info('Waiting for data to be populated into the queue')
                self.event.wait()

            data = queue.get()
            self.process(data)

    def process(self, data):
        # avoid processing empty data
        if not data:
            # self.log.error('Ignoring empty data processing')
            return

        # self.log.debug('Processing {data}'.format(data=data))

        tokens = data.split(DELIMITER)
        sensor_data = SensorData(tokens)

        # if file not created then create it.
        # Stop gap fix for date & time not set in Atheros
        # Sync the time between Atheros and ATMega
        # UPODXX... xx has to be replaced with POD serial number
        if not self._file:
            dt = float(tokens[DATE_TIME])
            # sychronize Atheros system clock with ATMega
            self.sync_datetime(dt)
            #filename = datetime.fromtimestamp(dt).strftime('UPODXX%d%m%y.txt')
            filename = tokens[0] + '.txt'
            # self.log.info('Created file: {name}'.format(name=filename))
            self._file = TxtWriter(filename) # RotatingTxtWriter(filename)

        # pprint(vars(sensor_data))
        # pprint(vars(sensor_data.GpsData))
        # print data
        #status = False
        #while not status:
        status = self._file.write(sensor_data)
            #print status
            # self.channel.put('status', 'T' if status else 'F')
        
    def sync_datetime(self, dt):
        import os
        # see if i need to set hardware clock or system clock
        fdt = datetime.fromtimestamp(dt).strftime('%Y-%m-%d %H:%M:%S')
        # self.log.info('Setting Atheros date time: {stamp}'.format(stamp=fdt))
        os.system('date -s "{stamp}" > /dev/null 2>&1'.format(stamp=fdt))