Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file modified build/TianShanOS.bin
Binary file not shown.
Binary file modified build/bootloader/bootloader.bin
Binary file not shown.
12 changes: 6 additions & 6 deletions build/firmware-manifest.json
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
{
"version": "0.6.2",
"build_version": "0.6.2+774c3a97.10130158",
"build_version": "0.6.2+028e6330.10132311",
"idf_version": "5.5.2",
"source_base_commit": "774c3a975311604fe629c34ed6600d7fcebcc93b",
"source_inputs_sha256": "8a4a1fdf9f1f6bd492866af1d88620502e2965ce31bdb512798196d5dc8e3836",
"source_base_commit": "028e63309255045957e86fcb73cc328cf5d95997",
"source_inputs_sha256": "a0c0f9b6b138c17f4cedeb3d902135882c9e28204987ec6338f7ece0459aac0e",
"files": {
"TianShanOS.bin": {
"bytes": 2226000,
"sha256": "064564898345b1bc2adaac04650fe5290a74a0ef5e5c1d1953d0c5d7a06ab17f"
"sha256": "f6e9f7ca1c22dd6aeaabfa6a36c0c38511ef013dbde999596c150dcbc20e382f"
},
"www.bin": {
"bytes": 3145728,
"sha256": "a33d3be59eb2dd293735c633052e53aa14fd0cddc62f621a49326f0056c23a3b"
"sha256": "3fbbd6a641be069593e00f3cebf4034feefb0fc5322f41c3145accbeb2d996b5"
},
"ota_data_initial.bin": {
"bytes": 8192,
Expand All @@ -23,7 +23,7 @@
},
"bootloader/bootloader.bin": {
"bytes": 22496,
"sha256": "106e473278fbefdce277341a2e77a097deea877ccc525ec2b7623a650397b851"
"sha256": "3f2254ead6037716cf2c7d2b6ac9ed8414b87779ea64ee52c63282274fbf0f24"
},
"partition_table/partition-table.bin": {
"bytes": 3072,
Expand Down
Binary file modified build/www.bin
Binary file not shown.
359 changes: 222 additions & 137 deletions components/ts_webui/web/js/app.js

Large diffs are not rendered by default.

11 changes: 10 additions & 1 deletion components/ts_webui/web/js/lang/en-US.js
Original file line number Diff line number Diff line change
Expand Up @@ -147,6 +147,13 @@ if (typeof i18n !== 'undefined') i18n.registerLanguage('en-US', {
"outputPreview": "Output: {output}",
"upgradeWritten": "Upgrade files were written. Requesting a device restart.",
"rebootUnknown": "Restart confirmation was not received. The device may be restarting; wait for the status check before repeating the operation.",
"otaBusy": "An upgrade or restart check is in progress. Wait for it to finish.",
"otaWrittenNoReboot": "Upgrade files were written, but the next boot could not be confirmed; no restart was requested.",
"otaRebootRefused": "Upgrade files were written, but the device refused the restart request.",
"otaConfirming": "Confirming the upgraded firmware...",
"otaRebootUnconfirmed": "Upgrade result unconfirmed",
"otaRebootMismatch": "The running firmware does not match the upgrade target",
"otaTargetDetails": "Expected version: {expected}; running version: {actual}. Check the device status.",
"horizontal": "Horizontal",
"vertical": "Vertical",
"diagonalRight": "Diagonal ↘",
Expand Down Expand Up @@ -3989,7 +3996,7 @@ if (typeof i18n !== 'undefined') i18n.registerLanguage('en-US', {
wifi: { scan: { failed: 'Failed to scan for WiFi networks' }, applyap: { failed: 'Failed to apply the hotspot settings', unknown: 'The result of applying the hotspot settings is unconfirmed' }, connect: { failed: 'Failed to connect to WiFi', unknown: 'The result of connecting to WiFi is unconfirmed' }, disconnect: { failed: 'Failed to disconnect from WiFi', unknown: 'The result of disconnecting from WiFi is unconfirmed' }, mode: { failed: 'Failed to change the WiFi mode', unknown: 'The result of changing the WiFi mode is unconfirmed' }, stations: { failed: 'Failed to read the list of connected devices' } },
cert: { status: { failed: 'Failed to refresh the certificate status' }, timesync: { failed: 'Failed to sync the device time', unknown: 'The result of syncing the device time is unconfirmed' }, keypair: { failed: 'Failed to generate the key pair', unknown: 'The result of generating the key pair is unconfirmed' }, csr: { failed: 'Failed to generate the certificate request (CSR)' }, install: { failed: 'Failed to install the certificate', unknown: 'The result of installing the certificate is unconfirmed' }, installca: { failed: 'Failed to install the CA chain', unknown: 'The result of installing the CA chain is unconfirmed' }, view: { failed: 'Failed to read the device certificate' }, delete: { failed: 'Failed to delete the PKI credentials', unknown: 'The result of deleting the PKI credentials is unconfirmed' } },
account: { login: { failed: 'Login failed' }, changepassword: { failed: 'Failed to change the password', unknown: 'The result of changing the password is unconfirmed' }, setroot: { failed: 'Failed to set the root password', unknown: 'The result of setting the root password is unconfirmed' }, setadmin: { failed: 'Failed to set the admin password', unknown: 'The result of setting the admin password is unconfirmed' }, resetadmin: { failed: 'Failed to reset the admin password', unknown: 'The result of resetting the admin password is unconfirmed' } },
ota: { upgrade: { failed: 'The upgrade failed', unknown: 'The result of the upgrade is unconfirmed' }, startwww: { failed: 'The WebUI upgrade could not be started', unknown: 'The result of starting the WebUI upgrade is unconfirmed' }, check: { failed: 'Failed to check for updates' }, start: { failed: 'Failed to start the firmware upgrade', unknown: 'The result of starting the firmware upgrade is unconfirmed' }, upgradewww: { failed: 'The WebUI upgrade failed (the firmware was already written)', unknown: 'The result of the WebUI upgrade is unconfirmed (the firmware was already written)' }, path: { failed: 'Could not start the upgrade from the SD card' }, abort: { failed: 'Failed to abort the upgrade', unknown: 'The result of aborting the upgrade is unconfirmed' }, validate: { failed: 'Failed to mark the firmware as valid', unknown: 'The result of marking the firmware as valid is unconfirmed' }, rollback: { failed: 'Failed to roll back the firmware', unknown: 'The result of rolling back the firmware is unconfirmed' }, saveserver: { failed: 'Failed to save the OTA server address', unknown: 'The result of saving the OTA server address is unconfirmed' } },
ota: { verify: { failed: 'Could not confirm the upgraded firmware', unknown: 'The result of the upgrade is unconfirmed' }, upgrade: { failed: 'The upgrade failed', unknown: 'The result of the upgrade is unconfirmed' }, startwww: { failed: 'The WebUI upgrade could not be started', unknown: 'The result of starting the WebUI upgrade is unconfirmed' }, check: { failed: 'Failed to check for updates' }, start: { failed: 'Failed to start the firmware upgrade', unknown: 'The result of starting the firmware upgrade is unconfirmed' }, upgradewww: { failed: 'The WebUI upgrade failed (the firmware was already written)', unknown: 'The result of the WebUI upgrade is unconfirmed (the firmware was already written)' }, path: { failed: 'Could not start the upgrade from the SD card' }, abort: { failed: 'Failed to abort the upgrade', unknown: 'The result of aborting the upgrade is unconfirmed' }, validate: { failed: 'Failed to mark the firmware as valid', unknown: 'The result of marking the firmware as valid is unconfirmed' }, rollback: { failed: 'Failed to roll back the firmware', unknown: 'The result of rolling back the firmware is unconfirmed' }, saveserver: { failed: 'Failed to save the OTA server address', unknown: 'The result of saving the OTA server address is unconfirmed' } },
device: { reboot: { failed: 'Failed to restart the device', unknown: 'The result of restarting the device is unconfirmed' } },
led: { list: { failed: 'Failed to read the LED device list' }, clear: { failed: 'Failed to turn off the LED', unknown: 'The result of turning off the LED is unconfirmed' }, ccapply: { failed: 'Failed to apply the color correction', unknown: 'The result of applying the color correction is unconfirmed' }, ccreset: { failed: 'Failed to reset the color correction', unknown: 'The result of resetting the color correction is unconfirmed' }, ccimport: { failed: 'Failed to import the color correction config', unknown: 'The result of importing the color correction config is unconfirmed' }, filterapply: { failed: 'Failed to apply the filter', unknown: 'The result of applying the filter is unconfirmed' }, filterstop: { failed: 'Failed to stop the filter', unknown: 'The result of stopping the filter is unconfirmed' }, brightness: { failed: 'Failed to set the brightness of {device}', unknown: 'The result of setting the brightness of {device} is unconfirmed' }, saveconfig: { failed: 'Failed to save the LED config', unknown: 'The result of saving the LED config is unconfirmed' }, starteffect: { failed: 'Failed to start the LED animation', unknown: 'The result of starting the LED animation is unconfirmed' }, stopeffect: { failed: 'Failed to stop the LED animation', unknown: 'The result of stopping the LED animation is unconfirmed' }, fill: { failed: 'Failed to fill the LED with a color', unknown: 'The result of filling the LED with a color is unconfirmed' }, image: { failed: 'Failed to display the image on the LED', unknown: 'The result of displaying the image on the LED is unconfirmed' }, qr: { failed: 'Failed to show the QR code on the LED', unknown: 'The result of showing the QR code on the LED is unconfirmed' }, text: { failed: 'Failed to show the text on the LED', unknown: 'The result of showing the text on the LED is unconfirmed' }, stoptext: { failed: 'Failed to stop the text on the LED', unknown: 'The result of stopping the text on the LED is unconfirmed' }, toggle: { failed: 'Failed to switch the LED on or off', unknown: 'The result of switching the LED on or off is unconfirmed' } },
home: { quicklist: { failed: 'Failed to read the quick actions' }, quicklog: { failed: 'Failed to read the run log' } },
Expand Down Expand Up @@ -4142,6 +4149,8 @@ if (typeof i18n !== 'undefined') i18n.registerLanguage('en-US', {
old_password_wrong: { why: 'the current password is wrong', hint: 'Check it and try again.' },
root_required: { why: 'this action needs the root account', hint: 'Log in as root and try again.' },
ota_failed: { why: 'the device reported an error during the upgrade', hint: 'Click Details to see the reason the device gave.' },
ota_target_unavailable: { why: 'the device did not provide the next firmware information', hint: 'The files were written. Check the partition status before restarting.' },
ota_target_mismatch: { why: 'the running firmware version {actual} does not match the target version {expected}', hint: 'Check the upgrade partition and device status before deciding whether to upgrade again.' },
ota_no_rollback: { why: 'there is no older version to roll back to', hint: 'An older version only exists after an upgrade.' },
ota_server_not_set: { why: 'no OTA server address has been set', hint: 'Save a server address on the OTA page first, or enter a full address.' },
url_invalid: { why: 'the address is not valid, or it is too long', hint: 'Enter a complete, valid address.' },
Expand Down
11 changes: 10 additions & 1 deletion components/ts_webui/web/js/lang/zh-CN.js
Original file line number Diff line number Diff line change
Expand Up @@ -147,6 +147,13 @@ if (typeof i18n !== 'undefined') i18n.registerLanguage('zh-CN', {
"outputPreview": "输出:{output}",
"upgradeWritten": "升级文件已写入,正在请求设备重启。",
"rebootUnknown": "未收到重启确认。设备可能正在重启,请等待状态检查,不要重复操作。",
"otaBusy": "正在升级或确认重启,请等待当前操作结束。",
"otaWrittenNoReboot": "升级文件已写入,重启前状态未确认;尚未请求重启。",
"otaRebootRefused": "升级文件已写入,但设备拒绝了重启请求。",
"otaConfirming": "正在确认升级后的固件...",
"otaRebootUnconfirmed": "升级结果未确认",
"otaRebootMismatch": "启动的固件与升级目标不符",
"otaTargetDetails": "目标版本:{expected};当前版本:{actual}。请检查设备状态。",
"horizontal": "横向",
"vertical": "纵向",
"diagonalRight": "对角 ↘",
Expand Down Expand Up @@ -3951,7 +3958,7 @@ if (typeof i18n !== 'undefined') i18n.registerLanguage('zh-CN', {
wifi: { scan: { failed: '扫描 WiFi 失败' }, applyap: { failed: '应用热点配置失败', unknown: '应用热点配置的结果未确认' }, connect: { failed: '连接 WiFi 失败', unknown: '连接 WiFi 的结果未确认' }, disconnect: { failed: '断开 WiFi 连接失败', unknown: '断开 WiFi 连接的结果未确认' }, mode: { failed: '切换 WiFi 模式失败', unknown: '切换 WiFi 模式的结果未确认' }, stations: { failed: '读取已连接设备列表失败' } },
cert: { status: { failed: '刷新证书状态失败' }, timesync: { failed: '同步设备时间失败', unknown: '同步设备时间的结果未确认' }, keypair: { failed: '生成密钥对失败', unknown: '生成密钥对的结果未确认' }, csr: { failed: '生成证书请求(CSR)失败' }, install: { failed: '安装证书失败', unknown: '安装证书的结果未确认' }, installca: { failed: '安装 CA 证书链失败', unknown: '安装 CA 证书链的结果未确认' }, view: { failed: '读取设备证书失败' }, delete: { failed: '删除 PKI 凭证失败', unknown: '删除 PKI 凭证的结果未确认' } },
account: { login: { failed: '登录失败' }, changepassword: { failed: '修改密码失败', unknown: '修改密码的结果未确认' }, setroot: { failed: '设置 root 密码失败', unknown: '设置 root 密码的结果未确认' }, setadmin: { failed: '设置 admin 密码失败', unknown: '设置 admin 密码的结果未确认' }, resetadmin: { failed: '重置 admin 密码失败', unknown: '重置 admin 密码的结果未确认' } },
ota: { upgrade: { failed: '升级失败', unknown: '升级的结果未确认' }, startwww: { failed: 'WebUI 升级没能启动', unknown: '启动 WebUI 升级的结果未确认' }, check: { failed: '检查更新失败' }, start: { failed: '启动固件升级失败', unknown: '启动固件升级的结果未确认' }, upgradewww: { failed: 'WebUI 升级失败(固件已经写入)', unknown: 'WebUI 升级的结果未确认(固件已经写入)' }, path: { failed: '无法开始从 SD 卡升级' }, abort: { failed: '中止升级失败', unknown: '中止升级的结果未确认' }, validate: { failed: '标记固件有效失败', unknown: '标记固件有效的结果未确认' }, rollback: { failed: '回滚固件失败', unknown: '回滚固件的结果未确认' }, saveserver: { failed: '保存 OTA 服务器地址失败', unknown: '保存 OTA 服务器地址的结果未确认' } },
ota: { verify: { failed: '无法确认升级后的固件', unknown: '升级结果未确认' }, upgrade: { failed: '升级失败', unknown: '升级的结果未确认' }, startwww: { failed: 'WebUI 升级没能启动', unknown: '启动 WebUI 升级的结果未确认' }, check: { failed: '检查更新失败' }, start: { failed: '启动固件升级失败', unknown: '启动固件升级的结果未确认' }, upgradewww: { failed: 'WebUI 升级失败(固件已经写入)', unknown: 'WebUI 升级的结果未确认(固件已经写入)' }, path: { failed: '无法开始从 SD 卡升级' }, abort: { failed: '中止升级失败', unknown: '中止升级的结果未确认' }, validate: { failed: '标记固件有效失败', unknown: '标记固件有效的结果未确认' }, rollback: { failed: '回滚固件失败', unknown: '回滚固件的结果未确认' }, saveserver: { failed: '保存 OTA 服务器地址失败', unknown: '保存 OTA 服务器地址的结果未确认' } },
device: { reboot: { failed: '重启设备失败', unknown: '重启设备的结果未确认' } },
led: { list: { failed: '读取 LED 设备列表失败' }, clear: { failed: '关闭 LED 失败', unknown: '关闭 LED 的结果未确认' }, ccapply: { failed: '应用色彩校正失败', unknown: '应用色彩校正的结果未确认' }, ccreset: { failed: '重置色彩校正失败', unknown: '重置色彩校正的结果未确认' }, ccimport: { failed: '导入色彩校正配置失败', unknown: '导入色彩校正配置的结果未确认' }, filterapply: { failed: '应用滤镜失败', unknown: '应用滤镜的结果未确认' }, filterstop: { failed: '停止滤镜失败', unknown: '停止滤镜的结果未确认' }, brightness: { failed: '设置 {device} 的亮度失败', unknown: '设置 {device} 亮度的结果未确认' }, saveconfig: { failed: '保存 LED 配置失败', unknown: '保存 LED 配置的结果未确认' }, starteffect: { failed: '启动 LED 动画失败', unknown: '启动 LED 动画的结果未确认' }, stopeffect: { failed: '停止 LED 动画失败', unknown: '停止 LED 动画的结果未确认' }, fill: { failed: '填充 LED 颜色失败', unknown: '填充 LED 颜色的结果未确认' }, image: { failed: '在 LED 上显示图像失败', unknown: '在 LED 上显示图像的结果未确认' }, qr: { failed: '在 LED 上显示 QR 码失败', unknown: '在 LED 上显示 QR 码的结果未确认' }, text: { failed: '在 LED 上显示文本失败', unknown: '在 LED 上显示文本的结果未确认' }, stoptext: { failed: '停止 LED 上的文本失败', unknown: '停止 LED 上的文本的结果未确认' }, toggle: { failed: '切换 LED 开关失败', unknown: '切换 LED 开关的结果未确认' } },
home: { quicklist: { failed: '读取快捷操作失败' }, quicklog: { failed: '读取运行日志失败' } },
Expand Down Expand Up @@ -4104,6 +4111,8 @@ if (typeof i18n !== 'undefined') i18n.registerLanguage('zh-CN', {
old_password_wrong: { why: '当前密码不对', hint: '请检查后重新输入。' },
root_required: { why: '这项操作需要 root 账户', hint: '请换用 root 账户登录后再操作。' },
ota_failed: { why: '设备在升级过程中报告了错误', hint: '点“详情”可以看到设备给出的原因。' },
ota_target_unavailable: { why: '设备未能提供待启动固件的信息', hint: '文件已经写入,请检查分区状态后再重启。' },
ota_target_mismatch: { why: '当前固件版本 {actual} 与目标版本 {expected} 不符', hint: '请检查升级分区和设备状态,再决定是否重新升级。' },
ota_no_rollback: { why: '没有可以回滚的旧版本', hint: '只有升级过之后,才会有旧版本可以回滚。' },
ota_server_not_set: { why: '还没有设置 OTA 服务器地址', hint: '请先在 OTA 页保存服务器地址,或直接填写完整的地址。' },
url_invalid: { why: '地址的格式不对,或者太长了', hint: '请填写完整、正确的地址。' },
Expand Down
Loading
Loading