11个不稳定版本
新增 0.6.1 | 2024年8月20日 |
---|---|
0.6.0 | 2024年6月4日 |
0.5.2 | 2024年3月12日 |
0.5.1 | 2023年11月16日 |
0.2.0 | 2023年3月30日 |
146 在 日期和时间
133 每月下载量
在 ocpi-tariffs-cli 中使用
89KB
2K SLoC
OCPI费用
本项目提供用于计算OCPI 费用的软件。具体针对OCPI 2.2.1
和OCPI 2.1.1
版本。
您可以在在线测试费用工具。
OCPI是由EV Roaming基金会拥有和维护的协议。
目标
-
提供一个OCPI费用实现的参考
给定一个特定的CDR和一定的费用,它能计算不同的(子)总计。
该软件提供输出,说明这些(子)总计是如何计算的。
-
提供一个广泛的测试用例集以确保正确性。
-
收集社区反馈
我们希望尽可能多的各方同意,这个参考实现是对OCPI规范和意图的正确解释。我们希望与EV Roaming基金会进行紧密合作。
我们欢迎社区对该项目的贡献。我们的目标是让熟悉OCPI的人更容易提供新的测试用例。
-
作为开源软件提供软件,以便其他人可以自由使用和测试它。
提供命令行工具和Rust库。
-
将软件功能在线公开,以便人们更容易使用费率软件进行计算。
-
在OCPI 3确定后不久支持OCPI 3费率。
非目标
-
提供软件,该软件使用OCPI协议在电动汽车漫游各方之间通信费率。
-
产生人类可消费的收据,具体说明导致计算总价的不同成本组成部分。
费率结构概述
classDiagram
class Tariff {
TariffElement elements
}
class TariffElement {
PriceComponent price_components
TariffRestriction restrictions
}
class PriceComponent {
TarifDimensionType type
Number price
Number vat
int step_size
}
class TariffRestriction {
DayOfWeek day_of_week
...
}
Tariff "1" --o "1.." TariffElement
TariffElement "1" --o "1.." PriceComponent
TariffElement "1" --o "0..1" TariffRestriction
解释
此实现旨在尽可能遵循OCPI规范。然而,与任何规范一样,细节可能被留白以供解释。以下是在此实现中已做出的假设列表
-
我们假设一个
FLAT
价格组件只能在会话中激活一次。第一次一个FLAT
价格组件被激活时,它将被使用,后续激活的FLAT
组件将被忽略。尽管这一点在OCPI 2..规范中没有明确提及,但我们认为这是正确的解释。 -
我们假设作为输入提供的充电周期是良好形成的。这意味着,会话中具有不同价格的每个周期都必须作为CDR中的一个单独的充电周期提供。不会尝试细分或插值单个提供的周期内的数据。
贡献
我们欢迎社区对该项目的贡献。
在做出任何贡献之前,请阅读我们的贡献者条款。
任何有意提交以包含的贡献应遵守Rust标准许可模型(MIT OR Apache 2.0),因此应按以下方式双许可,而不附加任何额外条款或条件
许可
此贡献在以下两者中选择一个进行双许可
- Apache License,版本2.0,(LICENSE-APACHE 或 http://www.apache.org/licenses/LICENSE-2.0)
- MIT许可(LICENSE-MIT 或 http://opensource.org/licenses/MIT)
由你选择。
为了明确起见,“你”指的是TandemDrive或任何其他贡献/许可方/用户。
依赖关系
~2.6–4MB
~71K SLoC