Add extracted tools: CitrineOS, OpenOCPP, ShapeShifter
- CitrineOS core extracted (CSMS OCPP 2.0.1) - OpenOCPP extracted (firmware OCPP 1.6J/2.0.1) - ShapeShifter library installed (pip install -e) - ShapeShifter specification extracted - EVerest extracted TODO updated with progress
This commit is contained in:
@@ -0,0 +1,3 @@
|
||||
if(${EVEREST_ENABLE_RS_SUPPORT})
|
||||
ev_add_module(RsPaymentTerminal)
|
||||
endif()
|
||||
@@ -0,0 +1 @@
|
||||
Modules related to payment
|
||||
@@ -0,0 +1,69 @@
|
||||
load("@rules_rust//rust:defs.bzl", "rust_binary", "rust_test")
|
||||
load("@everest_crate_index//:defs.bzl", "all_crate_deps")
|
||||
load("@rules_rust//cargo:defs.bzl", "cargo_build_script")
|
||||
|
||||
cargo_build_script(
|
||||
name = "build_script",
|
||||
srcs = ["build.rs"],
|
||||
edition="2021",
|
||||
build_script_env = {
|
||||
"EVEREST_CORE_ROOT": "../../../..",
|
||||
},
|
||||
data = [
|
||||
"manifest.yaml",
|
||||
"@everest-core//errors",
|
||||
"@everest-core//interfaces",
|
||||
"@everest-core//types",
|
||||
],
|
||||
deps = all_crate_deps(build = True) + [
|
||||
"//lib/everest/framework/everestrs/everestrs-build",
|
||||
],
|
||||
)
|
||||
|
||||
rust_binary(
|
||||
name = "RsPaymentTerminalBinary",
|
||||
srcs = glob(["src/*.rs"]),
|
||||
edition="2021",
|
||||
proc_macro_deps = all_crate_deps(proc_macro = True),
|
||||
visibility = ["//visibility:public"],
|
||||
deps = all_crate_deps(normal = True) + [
|
||||
":build_script",
|
||||
"//lib/everest/framework/everestrs/everestrs",
|
||||
"//lib/everest/framework/everestrs/everestrs:everestrs_sys",
|
||||
"//lib/everest/framework/everestrs/everestrs:everestrs_bridge",
|
||||
],
|
||||
crate_features = ["with_lavego_error_codes"],
|
||||
|
||||
)
|
||||
|
||||
rust_test(
|
||||
name = "RsPaymentTerminalTest",
|
||||
edition="2021",
|
||||
srcs = [],
|
||||
crate_features = ["mockall", "mockall_double"],
|
||||
crate = ":RsPaymentTerminalBinary",
|
||||
)
|
||||
|
||||
binary = ":RsPaymentTerminalBinary"
|
||||
manifest = ":manifest.yaml"
|
||||
name = "RsPaymentTerminal"
|
||||
|
||||
genrule(
|
||||
name = "copy_to_subdir",
|
||||
srcs = [binary, manifest],
|
||||
outs = [
|
||||
"{}/manifest.yaml".format(name),
|
||||
"{}/{}".format(name, name),
|
||||
],
|
||||
cmd = "mkdir -p $(RULEDIR)/{} && ".format(name) +
|
||||
"cp $(location {}) $(RULEDIR)/{}/{} && ".format(binary, name, name) +
|
||||
"cp $(location {}) $(RULEDIR)/{}/".format(manifest, name),
|
||||
)
|
||||
|
||||
filegroup(
|
||||
name = name,
|
||||
srcs = [
|
||||
":copy_to_subdir",
|
||||
],
|
||||
visibility = ["//visibility:public"],
|
||||
)
|
||||
@@ -0,0 +1,23 @@
|
||||
[package]
|
||||
name = "RsPaymentTerminal"
|
||||
version = "0.1.0"
|
||||
edition = "2021"
|
||||
|
||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||
|
||||
[dependencies]
|
||||
everestrs = { workspace=true }
|
||||
anyhow = "1.0.82"
|
||||
zvt = { git = "https://github.com/Everest/zvt.git", rev = "60574939d2cbe35b5d4fc9b03af7e8c3e098706c" }
|
||||
zvt_feig_terminal = { git = "https://github.com/Everest/zvt.git", rev = "60574939d2cbe35b5d4fc9b03af7e8c3e098706c", features = ["with_lavego_error_codes"] }
|
||||
tokio = { version = "1.47.0", features = ["macros", "rt-multi-thread", "net", "sync"] }
|
||||
log = "0.4.20"
|
||||
mockall = { version = "0.12.1", optional = true }
|
||||
mockall_double = { version = "0.3.1", optional = true}
|
||||
|
||||
[build-dependencies]
|
||||
everestrs-build = { workspace=true }
|
||||
|
||||
[features]
|
||||
with_lavego_error_codes = ["zvt_feig_terminal/with_lavego_error_codes"]
|
||||
default = ["mockall", "mockall_double", "with_lavego_error_codes"]
|
||||
@@ -0,0 +1,75 @@
|
||||
description: Payment terminal module for Feig devices.
|
||||
config:
|
||||
ip:
|
||||
description: IP Address of Feig terminal, like "192.168.0.1"
|
||||
type: string
|
||||
feig_serial:
|
||||
description: >-
|
||||
Serial of Feig terminal. Typically a seven characters long string like
|
||||
"ABCD123".
|
||||
type: string
|
||||
terminal_id:
|
||||
description: Payment terminal ID.
|
||||
type: string
|
||||
currency:
|
||||
description: Currency in ISO 4217 format.
|
||||
default: 978
|
||||
type: integer
|
||||
pre_authorization_amount:
|
||||
description: Pre authentication amount in Cents.
|
||||
default: 2500
|
||||
type: integer
|
||||
read_card_timeout:
|
||||
description: The time (is seconds) to wait for a card to be read.
|
||||
default: 2
|
||||
type: integer
|
||||
read_card_debounce:
|
||||
description: >-
|
||||
The debounce time (in seconds) after a successful card reading. The
|
||||
parameter prevents re-reading the same card.
|
||||
default: 2
|
||||
type: integer
|
||||
transactions_max_num:
|
||||
description: >-
|
||||
The maximum number of concurrent transactions. The Feig terminal will
|
||||
reject a transaction if it would exceed the maximum number of concurrent
|
||||
transactions - in this case you need to finish a transaction to allow a
|
||||
new one.
|
||||
default: 1
|
||||
type: integer
|
||||
password:
|
||||
description: Password for the Feig terminal.
|
||||
type: integer
|
||||
end_of_day_max_interval:
|
||||
description: >-
|
||||
The maximum time (in sec) between end of day jobs. Payment backends might
|
||||
force the payment terminals to run them regularly. Defaults to one day.
|
||||
default: 86400
|
||||
type: integer
|
||||
requires:
|
||||
session:
|
||||
interface: session_cost
|
||||
min_connections: 0
|
||||
max_connections: 1
|
||||
ignore:
|
||||
vars:
|
||||
- default_price
|
||||
bank_session_token:
|
||||
interface: bank_session_token_provider
|
||||
min_connections: 0
|
||||
max_connections: 1
|
||||
provides:
|
||||
token_provider:
|
||||
interface: auth_token_provider
|
||||
description: Provides an authentication token from the Feig terminal.
|
||||
token_validator:
|
||||
interface: auth_token_validator
|
||||
description: Reserves the `pre_authorization_amount` from a bank card.
|
||||
payment_terminal:
|
||||
interface: payment_terminal
|
||||
description: Provides all the commands specific for bank cards handling
|
||||
enable_external_mqtt: false
|
||||
metadata:
|
||||
license: https://opensource.org/licenses/Apache-2.0
|
||||
authors:
|
||||
- embedded-team@qwello.eu
|
||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user