def __init__(self, datasource=None, buffer=25, vtype='plot'):
        if datasource is None:
            self.datasource = ds.RealTimeData()
        else:
            self.datasource = datasource
        self.DEFAULT_X = ["Time"]
        self.DEFAULT_Y = list(PLOT_META.keys())
        self.DEFAULT_VIEWTYPE = vtype
        self.figure, self.ax = plt.subplots()
        self.__bounds = [0, 100]
        self.plt_method = {}
        self._buffer_size = buffer
        L = []
        for i in range(buffer):
            L.append(datasource.to_dict())
        self.data = pd.DataFrame(L)
        self.color = {}
        Y = list(self.data.columns.values)
        for e in Y:
            if e not in PLOT_META.keys():
                self.plt_method[e] = "plot"
                self.color[e] = tuple(
                    [random.randrange(255) / 255 for i in range(3)])
                continue

            if PLOT_META[e]["plot_method"]:
                self.plt_method[e] = PLOT_META[e]["plot_method"]
            else:
                self.plt_method[e] = "plot"

            if PLOT_META[e]["color"]:
                self.color[e] = PLOT_META[e]["color"]
            else:
                self.color[e] = tuple(
                    [random.randrange(255) / 255 for i in range(3)])
Beispiel #2
0
 def __init__(self,
              X="Time",
              Y="Temperature",
              title='',
              bufSize=10,
              color="red",
              datasource=None):
     if datasource is None:
         self.dataSource = ds.RealTimeData()
     else:
         self.dataSource = datasource
     self.x = [X]
     self.y = [Y]
     self.inputX = [self.dataSource.to_dict()[X]] * (bufSize + 1)
     #self.inputX.append(self.dataSource.to_dict()[X])
     self.inputY = [self.dataSource.to_dict()[Y]] * (bufSize + 1)
     #self.inputY.append(self.dataSource.to_dict()[Y])
     self.history = [time.strftime('%M:%S', time.gmtime())] * len(X)
     self.__bufSize = bufSize + 1
     self.__title = title
     self.trace = plt.plot
     self.plot = None
     self.__fig = None
     self.__canvas = None
     self.fig = None
     self.color = color
     self.__freq = 10
Beispiel #3
0
    def __init__(self, host='0.0.0.0', port=5001, system=None):
        super(Server, self).__init__(__name__,
                                     template_folder='../templates',
                                     static_folder='../static')
        self.RTData = ds.RealTimeData(server=self)
        self.host = host
        self.port = port

        if system is not None:
            self.system = system
        else:
            self.system = AlertSystem(server=self)

        self.add_url_rule('/', view_func=self.default_page)
        self.add_url_rule('/auth',
                          view_func=self.authenticate,
                          methods=["POST", "GET"])
        if self.host == '0.0.0.0':
            webbrowser.open('http://127.0.0.1:' + str(self.port) + '/')
        else:
            webbrowser.open('http://' + self.host + ':' + str(self.port) + '/')
Beispiel #4
0
    def visualizer(self):
        print()
        params = {
            'Cam': [
                f.replace('_', ' ').title() for f in dir(eff)
                if not (f.startswith('__') and f.endswith('__'))
                and f not in ['cv2', 'np']
            ],
            'Ptypes': ['Bar', 'Derived', 'Plot']
        }

        self.RTData = ds.RealTimeData(server=self)

        def func():
            return float(self.RTData.state["Fire"])

        self.awake_agent = FetchAgent(unique_id=0,
                                      model=self.system,
                                      func=func)
        self.awake_agent.set_threshold(0)

        self.add_url_rule('/video_feed',
                          view_func=self.video_feed,
                          methods=["POST", "GET"])
        self.add_url_rule('/graph_feed',
                          view_func=self.graph_feed,
                          methods=["POST", "GET"])
        self.add_url_rule('/score_feed',
                          view_func=self.score_feed,
                          methods=["POST", "GET"])
        self.add_url_rule('/notif_feed',
                          view_func=self.notif_feed,
                          methods=["POST", "GET"])
        self.add_url_rule('/realtime_feed',
                          view_func=self.data_feed,
                          methods=["POST", "GET"])
        self.add_url_rule('/rest_classifier',
                          view_func=self.classify_frame,
                          methods=["POST", "GET"])
        return render_template('visualizer.html', **params)