我正在开发一个库存控制系统,希望可以部署在我们的几个工厂内。我将使用Linux SBC(Pi,Beaglebone ......等)平台。我希望我的用户界面不是Linux,以便最终用户不需要知道Linux操作系统或如何使用命令行进行导航。我的应用程序将在启动时自动启动,并为最终用户提供所有必要的前端和Python / Tkinter HMI。我的原型基于Raspberry Pi B.因为许多安装可能没有可用的网络,所以我需要一种通过python通过用户界面设置系统时间的方法。我在GPIO引脚上使用带有i2C接口的Dallas 3231 RTC I2C芯片。一切都解决了,除非似乎没有一种简单的方法让Python设置系统时间,将其写入RTC,并在网络可用时忽略NPT同步。这可能非常简单,但我很难过。
答案 0 :(得分:1)
有人可能会想出更好的东西,但过去我是如何做到这一点的。
import subprocess
import datetime
try:
subprocess.check_call("ntpdate") #Non-zero exit code means it was unable to get network time
except subprocess.CalledProcessError:
dt = getRTCTime() # Get time from RTC as a datetime object
subprocess.call(['sudo', 'date', '-s', '{:}'.format(dt.strftime('%Y/%m/%d %H:%M:%S'))], shell=True) #Sets system time (Requires root, obviously)
#Rest of code
答案 1 :(得分:0)
Raspberry Pi 4也有类似情况,我想根据一些输入来更新系统时间。
SpecModifierForm specModifierForm = new SpecModifierForm();
specModifierForm.Show();
specModifierForm.WindowState = FormWindowState.Maximized;
specModifierForm.BringToFront();
在我的示例中,import time
def update_time(unix_time_as_string):
clk_id = time.CLOCK_REALTIME
time.clock_settime(clk_id, float(unix_time_as_string))
来自Web界面,类似于'1581084210.006'。