python - 可以打印来自传感器的值,但不会出现在图表中
问题描述
下面的代码是我的传感器 GUI 显示程序的一部分,它正在“工作”,但我无法获得我真正想要在图表中工作的值。我得到一个NameError: name 'result' is not defined
.
我希望将值result
显示在字段中,而不是accel0.getAcceleration()
让它打印没有问题,并尽我所能尝试全局值、更改数字格式等,但就是无法让它工作。任何帮助将不胜感激!!!
def onAccelerationChange(self, acceleration, timestamp):
global result
xA = float(acceleration[0])
xZ = float(acceleration[2])
xAngle = xA / xZ
rads = (math.atan(xAngle))
result = math.degrees(rads) ***I want this value to go...***
def plot(self):
x = ["Load 0", "Load 1", "Load 2", "Load 3"]
h = [(load0.getVoltageRatio() * 1000), (load1.getVoltageRatio() * 1000), (load2.getVoltageRatio() * 1000), (load3.getVoltageRatio() * 1000)]
# adding the subplot
self.plot1.cla()
self.plot1.bar(x, h)
self.plot1.set_xlabel("Strain Gauges")
self.plot1.set_ylabel("PLI")
self.plot1.set_title("Blade Load")
Angle = "Angle: " + str***(accel0.getAcceleration())*** + "°"
self.text['text'] = Angle
self.canvas.draw()
self.canvas.get_tk_widget().pack()
解决方案
您最初可以在函数外部定义全局。您可以在此处阅读有关全球的信息:
但是,您不应该为此使用全局变量,您应该使用类实例变量,因为您已经有了一个类。有关更多信息,请参阅此问题:Python 中的实例变量与类变量
这一切都假设您发布的代码是类的一部分,并且您在某处有一个 main 函数在第二个函数之前调用第一个函数。
推荐阅读
- navigation - popViewController 然后立即呈现一个警报控制器
- laravel - 如何在 Laravel 6 中创建唯一的复合索引?
- vue.js - 如何在 vue 中链接到 pdf?
- javascript - 基于数组输入的组件控制器(React Native)
- extjs - 访问通过 store 的 load 方法接收的 JSON 的附加属性
- reporting - 报告和 BI 的业务数据准备
- tensorflow2.0 - 运算符的三阶导数在 tensorflow2.0 中给出 nan
- javascript - 带有 Typescript 的 Next.js:无效的钩子调用。Hooks 只能在函数组件的主体内部调用
- node.js - 参数未显示在 URL 中 - Axios 和 Node
- reactjs - React:事件监听器中的回调获取旧状态