电机电流完善
This commit is contained in:
@ -1,215 +0,0 @@
|
||||
# from tkinter import colorchooser
|
||||
# from tkinter import font
|
||||
# import tkinter as tk
|
||||
# import threading
|
||||
# import logging
|
||||
# import time
|
||||
# import os
|
||||
|
||||
import customtkinter as ctk
|
||||
from tkinter import messagebox
|
||||
from tkinter import filedialog
|
||||
from tkinter import ttk
|
||||
|
||||
|
||||
class App:
|
||||
def __init__(self):
|
||||
# ========================================================================
|
||||
self.root = ctk.CTk()
|
||||
self.__set_root()
|
||||
# ========================================================================
|
||||
# self.style = ttk.Style()
|
||||
# self.style.configure("nb.TNotebook", font=("Consolas", 28, "normal"))
|
||||
self.entry_path_dpv = ctk.StringVar()
|
||||
self.entry_path_dpv.set("数据文件夹路径")
|
||||
self.entry_path_atv = ctk.StringVar()
|
||||
self.entry_path_atv.set("数据文件夹路径")
|
||||
self.entry_ip_atv = ctk.StringVar()
|
||||
self.entry_ip_atv.set("192.168.0.160")
|
||||
# ========================================================================
|
||||
self.frame_left = ctk.CTkFrame(self.root, width=80, corner_radius=0, fg_color="#E9E9E9")
|
||||
# -------
|
||||
self.tabview_top = ctk.CTkTabview(self.root, width=900, height=180, fg_color="#E9E9E9", border_width=2, anchor="w", command=self.__switch_tab)
|
||||
self.tabview_top.add("数据处理")
|
||||
self.tabview_top.add("自动测试")
|
||||
# -------
|
||||
self.tabview_bottom = ctk.CTkTabview(self.root, fg_color="#E9E9E9", border_width=2, anchor="w")
|
||||
self.tabview_bottom.add("输出")
|
||||
self.tabview_bottom.add("日志")
|
||||
# -------
|
||||
self.frame_status = ctk.CTkFrame(self.root, height=30, bg_color="purple")
|
||||
# ========================================================================
|
||||
self.label_logo = ctk.CTkLabel(self.frame_left, text="Rokae AIO", font=self.f_logo, text_color="#4F4F4F")
|
||||
self.btn_start = ctk.CTkButton(self.frame_left, text="开始运行", font=self.f_normal, fg_color='#4F4F4F', command=lambda: print("---"))
|
||||
self.btn_save_log = ctk.CTkButton(self.frame_left, text="保存日志", font=self.f_normal, fg_color='#4F4F4F', command=lambda: print("---"))
|
||||
# ========================================================================
|
||||
self.om_main_dp = ctk.CTkOptionMenu(self.tabview_top.tab("数据处理"), width=120, dynamic_resizing=False, values=["INIT", "brake", "current", "iso", "wavelog"], font=self.f_normal, text_color='#3C3C3C', button_color='#7B6B5B', fg_color="#8D8D8D", command=print)
|
||||
self.om_sub_dp = ctk.CTkOptionMenu(self.tabview_top.tab("数据处理"), width=120, dynamic_resizing=False, values=["cycle", "max", "avg"], font=self.f_normal, text_color='#3C3C3C', button_color='#7B6B5B', fg_color="#8D8D8D", command=print)
|
||||
self.label_path_dp = ctk.CTkLabel(self.tabview_top.tab("数据处理"), width=50, anchor="e", text="Path", font=self.f_normal)
|
||||
self.entry_path_dp = ctk.CTkEntry(self.tabview_top.tab("数据处理"), width=80, state="disabled", textvariable=self.entry_path_dpv, font=self.f_entry, text_color="#818181")
|
||||
self.label_vel_dp = ctk.CTkLabel(self.tabview_top.tab("数据处理"), width=50, anchor="e", text="Vel", font=self.f_normal)
|
||||
self.om_vel_dp = ctk.CTkOptionMenu(self.tabview_top.tab("数据处理"), width=80, values=["1", "2", "3", "4", "5"], font=self.f_normal)
|
||||
self.label_trq_dp = ctk.CTkLabel(self.tabview_top.tab("数据处理"), width=50, anchor="e", text="Trq", font=self.f_normal)
|
||||
self.om_trq_dp = ctk.CTkOptionMenu(self.tabview_top.tab("数据处理"), width=80, values=["1", "2", "3", "4", "5"], font=self.f_normal)
|
||||
self.label_sensor_dp = ctk.CTkLabel(self.tabview_top.tab("数据处理"), width=50, anchor="e", text="Sensor", font=self.f_normal)
|
||||
self.om_sensor_dp = ctk.CTkOptionMenu(self.tabview_top.tab("数据处理"), width=80, values=["1", "2", "3", "4", "5"], font=self.f_normal)
|
||||
self.label_estop_dp = ctk.CTkLabel(self.tabview_top.tab("数据处理"), width=50, anchor="e", text="Estop", font=self.f_normal)
|
||||
self.om_estop_dp = ctk.CTkOptionMenu(self.tabview_top.tab("数据处理"), width=80, values=["1", "2", "3", "4", "5"], font=self.f_normal)
|
||||
self.label_trqh_dp = ctk.CTkLabel(self.tabview_top.tab("数据处理"), width=50, anchor="e", text="TrqH", font=self.f_normal)
|
||||
self.om_trqh_dp = ctk.CTkOptionMenu(self.tabview_top.tab("数据处理"), width=80, values=["1", "2", "3", "4", "5"], font=self.f_normal)
|
||||
# ========================================================================
|
||||
self.om_main_at = ctk.CTkOptionMenu(self.tabview_top.tab("自动测试"), width=120, dynamic_resizing=False, values=["INIT", "brake", "current"], font=self.f_normal, text_color='#3C3C3C', button_color='#7B6B5B', fg_color="#8D8D8D", command=print)
|
||||
self.om_sub_at = ctk.CTkOptionMenu(self.tabview_top.tab("自动测试"), width=120, dynamic_resizing=False, values=["负载信息", "tool33", "tool66", "tool100", "inertia"], font=self.f_normal, text_color='#3C3C3C', button_color='#7B6B5B', fg_color="#8D8D8D", command=print)
|
||||
self.label_ip_at = ctk.CTkLabel(self.tabview_top.tab("自动测试"), anchor="e", text="IP", font=self.f_normal)
|
||||
self.entry_ip_at = ctk.CTkEntry(self.tabview_top.tab("自动测试"), width=160, textvariable=self.entry_ip_atv, font=self.f_entry, text_color="#818181")
|
||||
self.btn_conn = ctk.CTkButton(self.tabview_top.tab("自动测试"), text="连接", width=60, font=self.f_segbtn)
|
||||
self.progressbar_at = ctk.CTkProgressBar(self.tabview_top.tab("自动测试"), width=160, mode="indeterminate")
|
||||
self.label_path_at = ctk.CTkLabel(self.tabview_top.tab("自动测试"), width=50, anchor="e", text="Path", font=self.f_normal)
|
||||
self.entry_path_at = ctk.CTkEntry(self.tabview_top.tab("自动测试"), width=80, state="disabled", textvariable=self.entry_path_atv, font=self.f_entry, text_color="#818181")
|
||||
self.segbutton_at = ctk.CTkSegmentedButton(self.tabview_top.tab("自动测试"), width=120, dynamic_resizing=False, values=["功能切换", "触发急停", "恢复急停", "待定功能", "功能待定", "机器状态", "告警信息"], font=self.f_segbtn)
|
||||
# ========================================================================
|
||||
self.text_output = ctk.CTkTextbox(self.tabview_bottom.tab("输出"), height=10, font=self.f_text)
|
||||
# ========================================================================
|
||||
self.segbutton_logs = ctk.CTkSegmentedButton(self.tabview_bottom.tab("日志"), width=200, dynamic_resizing=False, values=["上一页", "实时", "下一页"], font=self.f_segbtn)
|
||||
self.btn_find = ctk.CTkButton(self.tabview_bottom.tab("日志"), text="查找", width=60, font=self.f_segbtn)
|
||||
self.entry_keyword = ctk.CTkEntry(self.tabview_bottom.tab("日志"), placeholder_text="[id-level] 查找内容", width=60, font=self.f_segbtn)
|
||||
self.label_loglevel = ctk.CTkLabel(self.tabview_bottom.tab("日志"), width=60, anchor="e", text="等级", font=self.f_normal)
|
||||
self.om_loglevel = ctk.CTkOptionMenu(self.tabview_bottom.tab("日志"), width=60, dynamic_resizing=False, values=["DEBUG", "INFO", "WARNING", "ERROR"], font=self.f_normal, text_color='#3C3C3C', button_color='#7B6B5B', fg_color="#8D8D8D", command=print)
|
||||
self.treeview_logs = ttk.Treeview(self.tabview_bottom.tab("日志"), height=10, columns=("time", "level", "module", "content"))
|
||||
# ========================================================================
|
||||
with open("../../assets/version/vers", mode="r", encoding="utf-8") as f_vers:
|
||||
_version, _update = f_vers.read().split("@")
|
||||
_text = f" v{_version} Update@{_update}"
|
||||
self.label_vers = ctk.CTkLabel(self.frame_status, text=_text, bg_color="#C9C9C9", font=self.f_status, anchor="w")
|
||||
var_tips = ctk.StringVar()
|
||||
var_tips.set("当前是最新版本!")
|
||||
self.label_tips = ctk.CTkLabel(self.frame_status, textvariable=var_tips, bg_color="#ABCDEF", font=self.f_status, anchor="e")
|
||||
# ========================================================================
|
||||
self.__draw()
|
||||
|
||||
def __set_root(self):
|
||||
self.root.title("AIO - All in one automatic toolbox")
|
||||
self.root.iconbitmap("../../assets/media/icon.ico")
|
||||
self.root.configure(fg_color="#E9E9E9")
|
||||
self.root.geometry(f"1100x500+10+10")
|
||||
# self.root.resizable(False, False)
|
||||
# self.root.protocol("WM_DELETE_WINDOW", self.__close_root)
|
||||
self.f_normal = ("Consolas", 20, "bold")
|
||||
self.f_entry = ("Consolas", 18, "bold")
|
||||
self.f_segbtn = ("楷体", 20, "bold")
|
||||
self.f_logo = ("Segoe Script Bold", 28, "bold")
|
||||
self.f_text = ("仿宋", 16, "normal")
|
||||
self.f_status = ("Consolas", 12, "bold")
|
||||
|
||||
def __close_root(self):
|
||||
msg = "相关数据可能未保存,正在运行程序时有概率会损坏数据文件,确定要终止程序运行吗?"
|
||||
res = messagebox.askyesno(title="退出程序", message=msg, default=messagebox.NO, icon=messagebox.WARNING)
|
||||
if res:
|
||||
self.root.destroy()
|
||||
|
||||
def __switch_tab(self):
|
||||
t_name = self.tabview_top.get()
|
||||
if t_name == "数据处理":
|
||||
self.tabview_top.configure(height=180)
|
||||
elif t_name == "自动测试":
|
||||
self.tabview_top.configure(height=180)
|
||||
|
||||
def __draw(self):
|
||||
def select_path(event):
|
||||
t_name = self.tabview_top.get()
|
||||
dir_path = filedialog.askdirectory()
|
||||
if t_name == "数据处理":
|
||||
c_origin = self.entry_path_dpv.get()
|
||||
if dir_path:
|
||||
self.entry_path_dpv.set(dir_path)
|
||||
else:
|
||||
self.entry_path_dpv.set(c_origin)
|
||||
elif t_name == "自动测试":
|
||||
c_origin = self.entry_path_atv.get()
|
||||
if dir_path:
|
||||
self.entry_path_atv.set(dir_path)
|
||||
else:
|
||||
self.entry_path_atv.set(c_origin)
|
||||
|
||||
# ========================================================================
|
||||
self.root.rowconfigure(0, weight=1)
|
||||
self.root.rowconfigure(1, weight=99)
|
||||
self.root.columnconfigure(0, weight=1)
|
||||
self.root.columnconfigure(1, weight=99)
|
||||
self.frame_left.grid(row=0, column=0, rowspan=2, sticky="news")
|
||||
self.tabview_top.grid(row=0, column=1, padx=10, pady=5, sticky="news")
|
||||
self.tabview_bottom.grid(row=1, column=1, padx=10, pady=(0, 10), sticky="news")
|
||||
self.frame_status.grid(row=2, column=0, columnspan=2, sticky="news")
|
||||
# ========================================================================
|
||||
self.frame_left.rowconfigure(list(range(30)), weight=1)
|
||||
self.frame_left.columnconfigure(0, weight=1)
|
||||
self.label_logo.grid(row=0, column=0, sticky="new", padx=20, pady=(20, 40))
|
||||
self.btn_start.grid(row=1, column=0, sticky="new", padx=15, ipady=4)
|
||||
self.btn_save_log.grid(row=2, column=0, sticky="new", padx=15, ipady=4)
|
||||
# ========================================================================
|
||||
# self.tabview_top.tab("数据处理").grid_rowconfigure([0, 1], weight=1)
|
||||
self.tabview_top.tab("数据处理").grid_columnconfigure(11, weight=1)
|
||||
self.om_main_dp.grid(row=0, column=0, padx=10)
|
||||
self.om_sub_dp.grid(row=1, column=0, padx=10, pady=(0, 10))
|
||||
self.label_path_dp.grid(row=0, column=1, padx=(0, 5), pady=10)
|
||||
self.entry_path_dp.grid(row=0, column=2, columnspan=10, padx=(0, 10), pady=10, sticky="we")
|
||||
self.label_vel_dp.grid(row=1, column=1, padx=(0, 5), pady=(0, 10))
|
||||
self.om_vel_dp.grid(row=1, column=2, padx=(0, 5), pady=(0, 10))
|
||||
self.label_trq_dp.grid(row=1, column=3, padx=(0, 5), pady=(0, 10))
|
||||
self.om_trq_dp.grid(row=1, column=4, padx=(0, 5), pady=(0, 10))
|
||||
self.label_trqh_dp.grid(row=1, column=5, padx=(0, 5), pady=(0, 10))
|
||||
self.om_trqh_dp.grid(row=1, column=6, padx=(0, 5), pady=(0, 10))
|
||||
self.label_estop_dp.grid(row=1, column=7, padx=(0, 5), pady=(0, 10))
|
||||
self.om_estop_dp.grid(row=1, column=8, padx=(0, 5), pady=(0, 10))
|
||||
self.label_sensor_dp.grid(row=1, column=9, padx=(0, 5), pady=(0, 10))
|
||||
self.om_sensor_dp.grid(row=1, column=10, padx=(0, 10), pady=(0, 10))
|
||||
|
||||
self.entry_path_dp.bind("<Button-1>", select_path)
|
||||
self.om_main_dp.set("INIT")
|
||||
self.om_vel_dp.set("1")
|
||||
self.om_trq_dp.set("2")
|
||||
self.om_trqh_dp.set("2")
|
||||
self.om_estop_dp.set("3")
|
||||
self.om_sensor_dp.set("3")
|
||||
# ========================================================================
|
||||
# self.tabview_top.tab("自动测试").grid_rowconfigure([0, 1, 2], weight=1)
|
||||
self.tabview_top.tab("自动测试").grid_columnconfigure(4, weight=1)
|
||||
self.om_main_at.grid(row=0, column=0, padx=10, pady=10, sticky="w")
|
||||
self.om_sub_at.grid(row=1, column=0, padx=10, pady=(0, 10), sticky="w")
|
||||
self.label_ip_at.grid(row=0, column=1, padx=(0, 10), sticky="e")
|
||||
self.entry_ip_at.grid(row=0, column=2)
|
||||
self.btn_conn.grid(row=0, column=3, padx=10)
|
||||
self.progressbar_at.grid(row=0, column=4, sticky="e")
|
||||
self.label_path_at.grid(row=1, column=1, padx=(0, 10), sticky="e")
|
||||
self.entry_path_at.grid(row=1, column=2, columnspan=3, sticky="we")
|
||||
self.segbutton_at.grid(row=2, column=0, columnspan=5, sticky="we")
|
||||
|
||||
self.progressbar_at.start()
|
||||
self.entry_path_at.bind("<Button-1>", select_path)
|
||||
# ========================================================================
|
||||
self.tabview_bottom.tab("输出").grid_rowconfigure(0, weight=1)
|
||||
self.tabview_bottom.tab("输出").grid_columnconfigure(0, weight=1)
|
||||
self.text_output.grid(row=0, column=0, padx=0, pady=1, sticky="news")
|
||||
# ========================================================================
|
||||
self.tabview_bottom.tab("日志").grid_rowconfigure(1, weight=1)
|
||||
self.tabview_bottom.tab("日志").grid_columnconfigure(2, weight=1)
|
||||
self.segbutton_logs.grid(row=0, column=0, padx=10, pady=(0, 10), sticky="w")
|
||||
self.btn_find.grid(row=0, column=1, padx=(0, 10), pady=(0, 10), sticky="w")
|
||||
self.entry_keyword.grid(row=0, column=2, padx=0, pady=(0, 10), sticky="we")
|
||||
self.treeview_logs.grid(row=1, column=0, columnspan=3, padx=0, pady=1, sticky="news")
|
||||
|
||||
self.segbutton_logs.set("实时")
|
||||
# ========================================================================
|
||||
self.frame_status.rowconfigure(0, weight=1)
|
||||
self.frame_status.columnconfigure([0, 1], weight=1)
|
||||
self.label_vers.grid(row=0, column=0, sticky="news")
|
||||
self.label_tips.grid(row=0, column=1, sticky="news")
|
||||
# ========================================================================
|
||||
|
||||
def show(self):
|
||||
self.root.mainloop()
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
aio = App()
|
||||
aio.show()
|
93
code/common/clibs.py
Normal file
93
code/common/clibs.py
Normal file
@ -0,0 +1,93 @@
|
||||
import os
|
||||
import os.path
|
||||
import sqlite3
|
||||
import threading
|
||||
|
||||
def traversal_files(path, w2t):
|
||||
# 功能:以列表的形式分别返回指定路径下的文件和文件夹,不包含子目录
|
||||
# 参数:路径
|
||||
# 返回值:路径下的文件夹列表 路径下的文件列表
|
||||
if not os.path.exists(path):
|
||||
w2t(f"数据文件夹{path}不存在,请确认后重试......", "red", "PathNotExistError")
|
||||
else:
|
||||
dirs, files = [], []
|
||||
for item in os.scandir(path):
|
||||
if item.is_dir():
|
||||
dirs.append(item.path.replace("\\", "/"))
|
||||
elif item.is_file():
|
||||
files.append(item.path.replace("\\", "/"))
|
||||
|
||||
return dirs, files
|
||||
|
||||
|
||||
def init_logdb(connect, cur):
|
||||
connect = sqlite3.connect(":memory:", isolation_level=None, check_same_thread=False, cached_statements=256)
|
||||
# connect = sqlite3.connect("log.db", isolation_level=None, check_same_thread=False, cached_statements=256)
|
||||
# time text default (datetime('now', 'localtime')),
|
||||
|
||||
cur = connect.cursor()
|
||||
cur.execute(
|
||||
"""
|
||||
create table if not exists logs(
|
||||
id integer primary key autoincrement,
|
||||
time DATETIME DEFAULT(STRFTIME('%Y-%m-%d %H:%M:%f', 'NOW', 'localtime')),
|
||||
level text,
|
||||
module text,
|
||||
content text
|
||||
)
|
||||
"""
|
||||
)
|
||||
return connect, cur
|
||||
|
||||
|
||||
def insert_logdb(_level, _module, _content):
|
||||
if db_state == "readwrite":
|
||||
global conn, cursor
|
||||
data = [_level, _module, repr(_content)]
|
||||
cursor.execute("insert into logs (level, module, content) values (?, ?, ?)", data)
|
||||
|
||||
|
||||
class GetThreadResult(threading.Thread):
|
||||
def __init__(self, func, args=()):
|
||||
super(GetThreadResult, self).__init__()
|
||||
self.func = func
|
||||
self.args = args
|
||||
self.result = None
|
||||
|
||||
def run(self):
|
||||
self.result = self.func(*self.args)
|
||||
|
||||
def get_result(self):
|
||||
threading.Thread.join(self) # 等待线程执行完毕
|
||||
try:
|
||||
return self.result
|
||||
except Exception as Err:
|
||||
return None
|
||||
|
||||
|
||||
# PREFIX = 'assets' # for pyinstaller packaging
|
||||
PREFIX = '../assets' # for source code testing and debug
|
||||
log_path = f"{PREFIX}/logs"
|
||||
conn = None
|
||||
cursor = None
|
||||
levels = ["DEBUG", "INFO", "WARNING", "ERROR"]
|
||||
db_state = "readwrite"
|
||||
data_dp = {}
|
||||
data_at = {}
|
||||
w2t = None
|
||||
running = False
|
||||
stop = True
|
||||
tl_prg = None
|
||||
f_records = None
|
||||
conn, cursor = init_logdb(conn, cursor)
|
||||
|
||||
for i in range(100):
|
||||
insert_logdb("DEBUG", "clibs", 'this is a DEBUG log -0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.00021840051467521813,\n\t\t\t\t-0.0\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\t"channel" : 4,\n\t\t\t"name" : "hw_joint_vel_feedback",\n\t\t\t"value" : \n\t\t\t[\n\t\t\t\t-0.0,\n\t\t\t\t-0.0\x04\x00,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n')
|
||||
insert_logdb("INFO", "clibs", 'this is a INFO log -0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.00021840051467521813,\n\t\t\t\t-0.0\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\t"channel" : 4,\n\t\t\t"name" : "hw_joint_vel_feedback",\n\t\t\t"value" : \n\t\t\t[\n\t\t\t\t-0.0,\n\t\t\t\t-0.0\x04\x00,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n')
|
||||
insert_logdb("WARNING", "clibs", 'this is a WARNING log -0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.00021840051467521813,\n\t\t\t\t-0.0\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\t"channel" : 4,\n\t\t\t"name" : "hw_joint_vel_feedback",\n\t\t\t"value" : \n\t\t\t[\n\t\t\t\t-0.0,\n\t\t\t\t-0.0\x04\x00,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n')
|
||||
insert_logdb("ERROR", "clibs", 'this is a ERROR log -0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.00021840051467521813,\n\t\t\t\t-0.0\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\t"channel" : 4,\n\t\t\t"name" : "hw_joint_vel_feedback",\n\t\t\t"value" : \n\t\t\t[\n\t\t\t\t-0.0,\n\t\t\t\t-0.0\x04\x00,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n')
|
||||
|
||||
insert_logdb("DEBUG", "clibs", 'running')
|
||||
insert_logdb("INFO", "clibs", 'running')
|
||||
insert_logdb("WARNING", "clibs", 'running')
|
||||
insert_logdb("ERROR", "clibs", 'running')
|
Reference in New Issue
Block a user