Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
R
RoboPLC
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
黄新宇
RoboPLC
Commits
57f366e2
提交
57f366e2
authored
4月 06, 2025
作者:
Serhij S
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
show remote metrics
上级
d03f7858
隐藏空白字符变更
内嵌
并排
正在显示
5 个修改的文件
包含
328 行增加
和
31 行删除
+328
-31
Cargo.lock
roboplc-cli/Cargo.lock
+272
-31
Cargo.toml
roboplc-cli/Cargo.toml
+1
-0
arguments.rs
roboplc-cli/src/arguments.rs
+9
-0
main.rs
roboplc-cli/src/main.rs
+4
-0
metrics.rs
roboplc-cli/src/metrics.rs
+42
-0
没有找到文件。
roboplc-cli/Cargo.lock
浏览文件 @
57f366e2
...
@@ -356,6 +356,17 @@ dependencies = [
...
@@ -356,6 +356,17 @@ dependencies = [
"winapi",
"winapi",
]
]
[[package]]
name = "displaydoc"
version = "0.2.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0"
dependencies = [
"proc-macro2",
"quote",
"syn",
]
[[package]]
[[package]]
name = "encode_unicode"
name = "encode_unicode"
version = "1.0.0"
version = "1.0.0"
...
@@ -550,14 +561,143 @@ dependencies = [
...
@@ -550,14 +561,143 @@ dependencies = [
"cc",
"cc",
]
]
[[package]]
name = "icu_collections"
version = "1.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526"
dependencies = [
"displaydoc",
"yoke",
"zerofrom",
"zerovec",
]
[[package]]
name = "icu_locid"
version = "1.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637"
dependencies = [
"displaydoc",
"litemap",
"tinystr",
"writeable",
"zerovec",
]
[[package]]
name = "icu_locid_transform"
version = "1.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e"
dependencies = [
"displaydoc",
"icu_locid",
"icu_locid_transform_data",
"icu_provider",
"tinystr",
"zerovec",
]
[[package]]
name = "icu_locid_transform_data"
version = "1.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7515e6d781098bf9f7205ab3fc7e9709d34554ae0b21ddbcb5febfa4bc7df11d"
[[package]]
name = "icu_normalizer"
version = "1.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f"
dependencies = [
"displaydoc",
"icu_collections",
"icu_normalizer_data",
"icu_properties",
"icu_provider",
"smallvec",
"utf16_iter",
"utf8_iter",
"write16",
"zerovec",
]
[[package]]
name = "icu_normalizer_data"
version = "1.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c5e8338228bdc8ab83303f16b797e177953730f601a96c25d10cb3ab0daa0cb7"
[[package]]
name = "icu_properties"
version = "1.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5"
dependencies = [
"displaydoc",
"icu_collections",
"icu_locid_transform",
"icu_properties_data",
"icu_provider",
"tinystr",
"zerovec",
]
[[package]]
name = "icu_properties_data"
version = "1.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "85fb8799753b75aee8d2a21d7c14d9f38921b54b3dbda10f5a3c7a7b82dba5e2"
[[package]]
name = "icu_provider"
version = "1.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9"
dependencies = [
"displaydoc",
"icu_locid",
"icu_provider_macros",
"stable_deref_trait",
"tinystr",
"writeable",
"yoke",
"zerofrom",
"zerovec",
]
[[package]]
name = "icu_provider_macros"
version = "1.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6"
dependencies = [
"proc-macro2",
"quote",
"syn",
]
[[package]]
[[package]]
name = "idna"
name = "idna"
version = "0.5.0"
version = "1.0.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e"
dependencies = [
"idna_adapter",
"smallvec",
"utf8_iter",
]
[[package]]
name = "idna_adapter"
version = "1.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "
634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6
"
checksum = "
daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71
"
dependencies = [
dependencies = [
"
unicode-bidi
",
"
icu_normalizer
",
"
unicode-normalization
",
"
icu_properties
",
]
]
[[package]]
[[package]]
...
@@ -615,6 +755,12 @@ version = "0.4.13"
...
@@ -615,6 +755,12 @@ version = "0.4.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c"
checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c"
[[package]]
name = "litemap"
version = "0.7.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "23fb14cb19457329c82206317a5663005a4d404783dc74f4252769b0d5f42856"
[[package]]
[[package]]
name = "log"
name = "log"
version = "0.4.21"
version = "0.4.21"
...
@@ -936,6 +1082,7 @@ dependencies = [
...
@@ -936,6 +1082,7 @@ dependencies = [
"toml",
"toml",
"ureq",
"ureq",
"ureq_multipart",
"ureq_multipart",
"url",
"which",
"which",
]
]
...
@@ -1135,6 +1282,12 @@ dependencies = [
...
@@ -1135,6 +1282,12 @@ dependencies = [
"autocfg",
"autocfg",
]
]
[[package]]
name = "smallvec"
version = "1.15.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8917285742e9f3e1683f0a9c4e6b57960b7314d0b08d30d1ecd426713ee2eee9"
[[package]]
[[package]]
name = "socket2"
name = "socket2"
version = "0.5.7"
version = "0.5.7"
...
@@ -1151,6 +1304,12 @@ version = "0.9.8"
...
@@ -1151,6 +1304,12 @@ version = "0.9.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67"
checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67"
[[package]]
name = "stable_deref_trait"
version = "1.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3"
[[package]]
[[package]]
name = "strsim"
name = "strsim"
version = "0.10.0"
version = "0.10.0"
...
@@ -1174,6 +1333,17 @@ dependencies = [
...
@@ -1174,6 +1333,17 @@ dependencies = [
"unicode-ident",
"unicode-ident",
]
]
[[package]]
name = "synstructure"
version = "0.13.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971"
dependencies = [
"proc-macro2",
"quote",
"syn",
]
[[package]]
[[package]]
name = "tempfile"
name = "tempfile"
version = "3.10.1"
version = "3.10.1"
...
@@ -1246,20 +1416,15 @@ dependencies = [
...
@@ -1246,20 +1416,15 @@ dependencies = [
]
]
[[package]]
[[package]]
name = "tiny
vec
"
name = "tiny
str
"
version = "
1.6.0
"
version = "
0.7.6
"
source = "registry+https://github.com/rust-lang/crates.io-index"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "
87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50
"
checksum = "
9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f
"
dependencies = [
dependencies = [
"tinyvec_macros",
"displaydoc",
"zerovec",
]
]
[[package]]
name = "tinyvec_macros"
version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
[[package]]
[[package]]
name = "tokio"
name = "tokio"
version = "1.36.0"
version = "1.36.0"
...
@@ -1331,27 +1496,12 @@ dependencies = [
...
@@ -1331,27 +1496,12 @@ dependencies = [
"version_check",
"version_check",
]
]
[[package]]
name = "unicode-bidi"
version = "0.3.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75"
[[package]]
[[package]]
name = "unicode-ident"
name = "unicode-ident"
version = "1.0.12"
version = "1.0.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
[[package]]
name = "unicode-normalization"
version = "0.1.23"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5"
dependencies = [
"tinyvec",
]
[[package]]
[[package]]
name = "unicode-width"
name = "unicode-width"
version = "0.1.14"
version = "0.1.14"
...
@@ -1399,9 +1549,9 @@ dependencies = [
...
@@ -1399,9 +1549,9 @@ dependencies = [
[[package]]
[[package]]
name = "url"
name = "url"
version = "2.5.
0
"
version = "2.5.
4
"
source = "registry+https://github.com/rust-lang/crates.io-index"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3
1e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633
"
checksum = "3
2f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60
"
dependencies = [
dependencies = [
"form_urlencoded",
"form_urlencoded",
"idna",
"idna",
...
@@ -1414,6 +1564,18 @@ version = "0.7.6"
...
@@ -1414,6 +1564,18 @@ version = "0.7.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9"
checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9"
[[package]]
name = "utf16_iter"
version = "1.0.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246"
[[package]]
name = "utf8_iter"
version = "1.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be"
[[package]]
[[package]]
name = "vcpkg"
name = "vcpkg"
version = "0.2.15"
version = "0.2.15"
...
@@ -1684,8 +1846,87 @@ version = "0.52.5"
...
@@ -1684,8 +1846,87 @@ version = "0.52.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0"
checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0"
[[package]]
name = "write16"
version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936"
[[package]]
name = "writeable"
version = "0.5.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51"
[[package]]
name = "yoke"
version = "0.7.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "120e6aef9aa629e3d4f52dc8cc43a015c7724194c97dfaf45180d2daf2b77f40"
dependencies = [
"serde",
"stable_deref_trait",
"yoke-derive",
"zerofrom",
]
[[package]]
name = "yoke-derive"
version = "0.7.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154"
dependencies = [
"proc-macro2",
"quote",
"syn",
"synstructure",
]
[[package]]
name = "zerofrom"
version = "0.1.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5"
dependencies = [
"zerofrom-derive",
]
[[package]]
name = "zerofrom-derive"
version = "0.1.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502"
dependencies = [
"proc-macro2",
"quote",
"syn",
"synstructure",
]
[[package]]
[[package]]
name = "zeroize"
name = "zeroize"
version = "1.7.0"
version = "1.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d"
checksum = "525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d"
[[package]]
name = "zerovec"
version = "0.10.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "aa2b893d79df23bfb12d5461018d408ea19dfafe76c2c7ef6d4eba614f8ff079"
dependencies = [
"yoke",
"zerofrom",
"zerovec-derive",
]
[[package]]
name = "zerovec-derive"
version = "0.10.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6"
dependencies = [
"proc-macro2",
"quote",
"syn",
]
roboplc-cli/Cargo.toml
浏览文件 @
57f366e2
...
@@ -32,6 +32,7 @@ once_cell = "1.19.0"
...
@@ -32,6 +32,7 @@ once_cell = "1.19.0"
bma-ts
=
{
version
=
"0.1.14"
,
features
=
[
"serde"
,
"chrono"
]
}
bma-ts
=
{
version
=
"0.1.14"
,
features
=
[
"serde"
,
"chrono"
]
}
prettytable-rs
=
"0.10.0"
prettytable-rs
=
"0.10.0"
chrono
=
"0.4.39"
chrono
=
"0.4.39"
url
=
"2.5.4"
[target.'cfg(windows)'.dependencies]
[target.'cfg(windows)'.dependencies]
ansi_term
=
"0.12.1"
ansi_term
=
"0.12.1"
...
...
roboplc-cli/src/arguments.rs
浏览文件 @
57f366e2
...
@@ -55,7 +55,16 @@ pub enum SubCommand {
...
@@ -55,7 +55,16 @@ pub enum SubCommand {
about
=
"Rollback to the previous program version (requires RoboPLC Pro)"
about
=
"Rollback to the previous program version (requires RoboPLC Pro)"
)]
)]
Rollback
(
RollbackCommand
),
Rollback
(
RollbackCommand
),
#[clap(name
=
"purge"
,
about
=
"Purge program data directory"
)]
Purge
,
Purge
,
#[clap(name
=
"metrics"
,
about
=
"Get running program metrics"
)]
Metrics
(
MetricsCommand
),
}
#[derive(Parser)]
pub
struct
MetricsCommand
{
#[clap(short
=
'p'
,
long,
help
=
"Metrics port"
,
default_value
=
"9000"
)]
pub
port
:
u16
,
}
}
#[derive(Parser)]
#[derive(Parser)]
...
...
roboplc-cli/src/main.rs
浏览文件 @
57f366e2
...
@@ -30,6 +30,7 @@ mod common;
...
@@ -30,6 +30,7 @@ mod common;
mod
config
;
mod
config
;
mod
exec
;
mod
exec
;
mod
flashing
;
mod
flashing
;
mod
metrics
;
mod
project
;
mod
project
;
mod
remote
;
mod
remote
;
mod
ureq_err
;
mod
ureq_err
;
...
@@ -156,6 +157,9 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
...
@@ -156,6 +157,9 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
SubCommand
::
Purge
=>
{
SubCommand
::
Purge
=>
{
remote
::
purge
(
&
url
,
&
key
,
agent
)
?
;
remote
::
purge
(
&
url
,
&
key
,
agent
)
?
;
}
}
SubCommand
::
Metrics
(
m
)
=>
{
metrics
::
display
(
&
url
,
m
.port
,
agent
)
?
;
}
}
}
Ok
(())
Ok
(())
}
}
roboplc-cli/src/metrics.rs
0 → 100644
浏览文件 @
57f366e2
use
std
::{
collections
::
BTreeMap
,
io
::{
BufRead
as
_
,
BufReader
},
};
use
prettytable
::{
format
,
row
,
Table
};
use
ureq
::
Agent
;
#[allow(clippy
::
too_many_arguments,
clippy
::
fn_params_excessive_bools)]
pub
fn
display
(
url
:
&
str
,
port
:
u16
,
agent
:
Agent
)
->
Result
<
(),
Box
<
dyn
std
::
error
::
Error
>>
{
let
mut
url
=
url
::
Url
::
parse
(
url
)
?
;
url
.set_port
(
Some
(
port
))
.map_err
(|
_
|
"invalid port"
)
?
;
let
r
=
agent
.get
(
url
.as_str
())
.call
()
?
;
if
r
.status
()
!=
200
{
return
Err
(
format!
(
"Error: {}"
,
r
.status
())
.into
());
}
let
r
=
BufReader
::
new
(
r
.into_reader
());
let
mut
values
=
BTreeMap
::
new
();
for
line
in
r
.lines
()
{
let
line
=
line
?
;
let
mut
l
=
line
.split
(
'#'
)
.next
()
.unwrap_or
(
""
);
l
=
l
.trim
();
if
l
.is_empty
()
{
continue
;
}
let
mut
sp
=
l
.splitn
(
2
,
' '
);
let
name
=
sp
.next
()
.unwrap
();
let
value
=
sp
.next
()
.unwrap_or
(
""
);
values
.insert
(
name
.to_string
(),
value
.to_string
());
}
let
mut
table
=
Table
::
new
();
let
format
=
format
::
FormatBuilder
::
new
()
.column_separator
(
' '
)
.padding
(
1
,
1
)
.build
();
table
.set_format
(
format
);
for
(
key
,
value
)
in
values
{
table
.add_row
(
row!
[
key
,
value
]);
}
table
.printstd
();
Ok
(())
}
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论