def show_results_all_hr(master_id, slave_id): TEMPLATES.clear() master = APP.get_master(master_id) requests = APP._db.get_hr_requests_for_slave(master_id, slave_id) name = 'Slave {0} - Function {1}'.format(slave_id, 3) friendly_name = 'Slave {0} - Function {1} - All Registers'.format( slave_id, 3) url = "/modbus-read-all-hr/{0}/{1}".format(master_id, slave_id) all_results = {} try: for req in requests: i = int(req['address']) #print "%s, %s, %s"%(int(slave_id), int(req['address']), int(req['length'])) results = master.modbus.execute(int(slave_id), int(3), int(req['address']), int(req['length'])) for result in results: all_results[i] = {'result': result, 'register_hex': hex(i)} i += 1 return template('templates/master_results_all_hr', results=all_results, url=url, name=name, master=master, friendly_name=friendly_name) except modbus.ModbusError, msg: return template('templates/modbus_error', msg=msg, name=name, url=url, master=master, friendly_name=friendly_name)
def show_results(master_id, slave_id, function_code, start_address, length): TEMPLATES.clear() master = APP.get_master(master_id) name = 'Slave {0} - Function {1}'.format(slave_id, function_code) friendly_name = 'Slave {0} - Function {1} - Address {2} - Count {3}'.format( slave_id, function_code, start_address, length) url = "/modbus-read/{0}/{1}/{2}/{3}/{4}".format(master_id, slave_id, function_code, start_address, length) try: results = master.modbus.execute(int(slave_id), int(function_code), int(start_address), int(length)) lines = [ i * 16 for i in range(int(len(results) % 16 > 0) + len(results) // 16) ] return template('templates/master_results', results=results, start=int(start_address), lines=lines, name=name, url=url, master=master, friendly_name=friendly_name) except modbus.ModbusError, msg: return template('templates/modbus_error', msg=msg, name=name, url=url, master=master, friendly_name=friendly_name)
def __update_template_path(): # Sometimes, when caching templates bottle doesn't clear the faulty # templates and the error persists even upon restarting the app. # The solution is to clear the templates explicitly with this statement: TEMPLATES.clear() for m in registered_methods: method_path = unicode('./{0}/{1}/'.format(config.FP_SUBDIR, m.subdir)) if method_path not in TEMPLATE_PATH: TEMPLATE_PATH.insert(0, method_path) logger.info('updated TEMPLATE_PATH')
def show_results(master_id, slave_id, function_code, start_address, length): TEMPLATES.clear() master = APP.get_master(master_id) name = 'Slave {0} - Function {1}'.format(slave_id, function_code) friendly_name = 'Slave {0} - Function {1} - Address {2} - Count {3}'.format(slave_id, function_code, start_address, length) url = "/modbus-read/{0}/{1}/{2}/{3}/{4}".format(master_id, slave_id, function_code, start_address, length) try: results = master.modbus.execute(int(slave_id), int(function_code), int(start_address), int(length)) lines = [i*16 for i in range(int(len(results)%16>0)+len(results)//16)] return template('templates/master_results', results=results, start=int(start_address), lines=lines, name=name, url=url, master=master, friendly_name=friendly_name) except modbus.ModbusError, msg: return template('templates/modbus_error', msg=msg, name=name, url=url, master=master, friendly_name=friendly_name)
def main(): # start worker threads=[] t=threading.Thread(target=worker.main) t.setDaemon(True) threads.append(t) t.start(); time.sleep(5) # quick 'hack' to get worker going (reading settings, etc...) TEMPLATES.clear() run(host='0.0.0.0', port=48963, debug=True) print "Oops server crashed!!" while True: # dont want things to end - for now this stupidity time.sleep(10)
def main(): # start worker threads = [] t = threading.Thread(target=worker.main) t.setDaemon(True) threads.append(t) t.start() time.sleep( 5) # quick 'hack' to get worker going (reading settings, etc...) TEMPLATES.clear() run(host='0.0.0.0', port=48963, debug=True) print "Oops server crashed!!" while True: # dont want things to end - for now this stupidity time.sleep(10)
def show_results_all_hr(master_id, slave_id): TEMPLATES.clear() master = APP.get_master(master_id) requests = APP._db.get_hr_requests_for_slave(master_id, slave_id) name = 'Slave {0} - Function {1}'.format(slave_id, 3) friendly_name = 'Slave {0} - Function {1} - All Registers'.format(slave_id, 3) url = "/modbus-read-all-hr/{0}/{1}".format(master_id, slave_id) all_results = {} try: for req in requests: i = int(req['address']) #print "%s, %s, %s"%(int(slave_id), int(req['address']), int(req['length'])) results = master.modbus.execute(int(slave_id), int(3), int(req['address']), int(req['length'])) for result in results: all_results[i] = {'result': result, 'register_hex': hex(i)} i += 1 return template('templates/master_results_all_hr', results=all_results, url=url, name=name, master=master, friendly_name=friendly_name) except modbus.ModbusError, msg: return template('templates/modbus_error', msg=msg, name=name, url=url, master=master, friendly_name=friendly_name)
def MainPage(): # Create a new guid for fun! guid = str(uuid.uuid1()) TEMPLATES.clear() # Use mainpage.html as a template with the value GUID set to the guid. return template(ScriptDir + '/templates/mainpage.html', GUID=guid)
def master_detail(id): TEMPLATES.clear() return template('templates/master_index', master=APP.get_master(id))
def delete_master(id): TEMPLATES.clear() APP.delete_master(id) return redirect('/masters')
def network(): TEMPLATES.clear() return template('network', host=hostname)
def master_list(): TEMPLATES.clear() return template('templates/masters_list', masters=APP.get_masters())
def ErrorPage(ErrorNum, ErrorMessage): TEMPLATES.clear() return template(ScriptDir + '/templates/error.html', ERROR=ErrorNum, MESSAGE=ErrorMessage)
def greet(): TEMPLATES.clear() return template('index', host=hostname)
def network(): TEMPLATES.clear() return template('network',host=hostname)
def clearCache(): """ Clear All html generated cached files from bottle. """ TEMPLATES.clear()
def greet(): TEMPLATES.clear() return template('index',host=hostname)
def clearCache(): """ Clear All html generated cached files from bottle. """ TEMPLATES.clear();