示例#1
0
class EvalNode:
    def __init__(self):
        self.logged_data = OrderedDict({'time_stamp': 0})
        #self.create_data_logger_instance()
        self.t1 = Worker(self, 'time_synched_cb')
        self.__message = ''

    def create_data_logger_instance(self):
        """Create the DataLogger class instance for logging the data."""
        self.__data_log_path = os.path.join(
            PATH_LOG,
            time.strftime("%Y-%m-%d_%H%M%S") + "_log")
        if not os.path.exists(self.__data_log_path):
            os.makedirs(self.__data_log_path)
        self.data_logger = DataLogger('data_log.csv', self.__data_log_path,
                                      'plot.png')

    def trigger_test(self, cmd):
        if cmd == 'start':
            if self.t1.is_alive():
                self.__message = "{} is already running.".format(self.t1)
            else:
                self.t1.start()
                self.__message = "{} is started".format(self.t1)
        elif cmd == 'stop':
            if not self.t1.is_alive():
                self.__message = "{} is already stopped".format(self.t1)
            else:
                self.t1.stop()
                self.data_logger.save_data_to_csv()
                self.__message = "{} is stopped".format(self.t1)
        print(self.__message)
        return self.__message

    def log_to_datafile_and_dcrt(self):
        """Return dcrt debug message and adds data to data list."""
        now = self.timestamp()
        self.logged_data['time_stamp'] = '%d' % (now)
        print(self.logged_data)
        message = self.data_logger.create_dcrt_log_message(
            now, self.logged_data)
        self.data_logger.add_data_to_data_list(self.logged_data)
        return message

    def time_synched_cb(self):
        """Call back function for SCP Receive thread."""
        message_dat = self.log_to_datafile_and_dcrt()
        #print(message_dat)
        time.sleep(0.005)

    def timestamp(self):
        """Return the current clock time."""
        return time.time()