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日期和时间

Download history 1/week @ 2024-05-16 1/week @ 2024-05-23 112/week @ 2024-05-30 37/week @ 2024-06-06 7/week @ 2024-06-13 4/week @ 2024-06-20 133/week @ 2024-08-15

133 每月下载量
ocpi-tariffs-cli 中使用

MIT/Apache

89KB
2K SLoC

OCPI费用

crates-io docs-rs unsafe-forbidden github-actions github-activity

本项目提供用于计算OCPI 费用的软件。具体针对OCPI 2.2.1OCPI 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),因此应按以下方式双许可,而不附加任何额外条款或条件

许可

此贡献在以下两者中选择一个进行双许可

由你选择。

为了明确起见,“你”指的是TandemDrive或任何其他贡献/许可方/用户。

依赖关系

~2.6–4MB
~71K SLoC