Beispiel #1
0
def _read_all_parameters_internal():
    current_installation = installationHandler.get_installation()
    now = datetime.datetime.now()
    tags = tag_dao.get_tags()
    num_logs_read = 0
    for tag in tags:
        #current_value = modbus_connector.get_value(tag) :: Put this in the log_item['value'] instead of 666

        log_item = {
            'name': tag['name'],
            'controller_ip': tag['controller_ip'],
            'value': 666,
            'time': now,
            'address': tag['address'],
            'type': tag['type']
        }
        log_entries = sync_queue_dao.select_data_like(log_item.get('name'), log_item.get('controller_ip'))
        for log_entry in log_entries:
            data = json.loads(log_entry.get('data'))
            if data.get('name') == log_item.get('name'):
                if data.get('controller_ip') == log_item.get('controller_ip'):
                    sync_queue_dao.delete(log_entry.get('id'), current_installation.get('serial_number'))

        num_logs_read += sync_queue_dao.insert_params(current_installation.get('serial_number'), 'log', 'insert', log_item)

    print('Added %s tags to sync.' % (num_logs_read,))
Beispiel #2
0
def send_ping():
    try:
        if LOCAL:
            print('Local sending ping')
            SyncManager.send_ping(installationHandler.get_installation()['serial_number'])
        else:
            print('Central sending pings')
            failed = []
            for key in SYNC_USERS:
                print('pinging ', key)
                ok = SyncManager.send_ping(key)
                if not ok:
                    failed.append(key)
            for fail in failed:
                SyncManager.un_register(fail)
    except:
        traceback.print_exc()
        pass
Beispiel #3
0
 def opened(self):
     print('sync ws opened')
     current_installation = installationHandler.get_installation()
     SyncManager.register(current_installation['serial_number'], self)
     connect = {'connect': True, "installation": current_installation['serial_number'], "model": current_installation['model']}
     self.sendData(json.dumps(connect))
Beispiel #4
0
    @cherrypy.expose
    def sync_ws(self):
        handler = cherrypy.request.ws_handler

def get_handlers(package):
    handlers = {}

    for member_name, member in [module for module in inspect.getmembers(package) 
        if inspect.ismodule(module[1])]:
            print("Adding handler %s" % member_name)
            handlers[member_name] = member
    return handlers

#To trigger new devices to set correct serial number before "workers" below does it at the same time
installation = installationHandler.get_installation()
print("installation is: ", installation.get('serial_number'))

LAST_RECIVED_PING['ping'] = datetime.datetime.now()

HANDLERS = get_handlers(api)

if False: #if SSL is needed
    CFG_DIR = ""
    SSL_CRT = os.path.join(CFG_DIR, 'ssl/domain.se.crt')
    SSL_KEY = os.path.join(CFG_DIR, 'ssl/domain.se.key')
    SSL_BUNDLE = os.path.join(CFG_DIR, 'ssl/ssl_bundle.pem')
    cherrypy.server.ssl_certificate = SSL_CRT
    cherrypy.server.ssl_private_key = SSL_KEY
    cherrypy.server.ssl_certificate_chain = SSL_BUNDLE
    cherrypy.server.ssl_module = 'pyopenssl'