Compare commits

..

24 Commits

Author SHA1 Message Date
48a03d5f7d Add refund and bill-lines 2024-06-25 16:45:00 +02:00
5b09f281f4 Merge branch 'zg1/zone1' of https://git.mimbach49.de/GerhardHoffmann/customer_746 into zg1/zone1 2024-06-25 16:40:06 +02:00
bff7ff4032 removed empty lines 2024-06-25 16:34:24 +02:00
9e46295fe4
Fix: DC2C_cash.json 2024-06-25 16:25:24 +02:00
86fd25683c
DC_device: add paramter "housing" ...
... this is for enabling door switches on 1256 DC
2024-06-25 15:44:11 +02:00
e1782ae4f6
opkg install release 2024-06-18 2024-06-25 15:42:26 +02:00
15b5fef435
Disable opkg-commands 2024-05-23 15:38:55 +02:00
8af9af2e52
Downgrade tariff libs 2024-05-23 15:26:54 +02:00
7a95bb261f
Merge branch 'zg1/zone1' of git.mimbach49.de:GerhardHoffmann/customer_746 into zg1/zone1 2024-05-23 14:51:54 +02:00
1fc4224604 Fix wrong prices: 30 -> 32, 36 -> 40 2024-05-06 11:24:29 +02:00
93d5f23a43 Fix: set pop_business_hours: 0x3F00 -> 0x7F00 2024-05-06 10:15:53 +02:00
c8f9389f36 Merge branch 'zg1/zone1' of https://git.mimbach49.de/GerhardHoffmann/customer_746 into zg1/zone1 2024-05-06 09:34:02 +02:00
3b259a8e90 Reload tariff-file 2024-05-06 09:33:35 +02:00
7698f857ad
HMI: Textupdate (cs_CZ) 2024-04-26 11:19:14 +02:00
303f6b7d7a
ATBAPP: set password for FeigPlug Six (plugin CC_TCPZVT) 2024-04-26 10:27:10 +02:00
4578c4a84f
Merge branch 'zg1/zone1' of git.mimbach49.de:GerhardHoffmann/customer_746 into zg1/zone1 2024-04-26 10:26:13 +02:00
27d0c90612 Merge branch 'zg1/zone1' of https://git.mimbach49.de/GerhardHoffmann/customer_746 into zg1/zone1 2024-04-26 08:50:02 +02:00
7604f6661d Set projetc Christoph Reisen 2024-04-26 08:49:14 +02:00
d2ea3e23bb
ATBAPP: setup languages 2024-04-26 08:48:11 +02:00
d259284bcd
atbapp: fix state/task 2024-04-25 15:17:32 +02:00
1a56d70c29
atbapp: switch off direct coin input 2024-04-25 15:13:57 +02:00
28cd5fba5b
Add initial PTU customer config (Text, States, ...) 2024-04-24 14:15:47 +02:00
4c200653f4 Added WeekdaysWorktime.
Set businesshours=16128 (to be backward compatible with bad-neuenahr).
2024-04-24 09:14:32 +02:00
3d5623053f added max_price and unrestricted business_hours 2024-04-15 12:55:41 +02:00
7 changed files with 3375 additions and 30 deletions

85
etc/atb/SystemControl.ini Normal file
View File

@ -0,0 +1,85 @@
[AT_TASKS]
1\arguments=restart, atbapp
1\envs=
1\hourOfDay=4
1\id=ATBAPP_RESTART
1\program=/bin/systemctl
2\arguments=restart, apism
2\envs=
2\hourOfDay=4
2\id=APISM_RESTART
2\program=/bin/systemctl
3\arguments=start, atbupdatetool
3\envs=
3\hourOfDay=1
3\id=PTU5UPDATE
3\program=/bin/systemctl
#4\arguments=
#4\envs=
#4\hourOfDay=0
#4\id=REBOOT_0
#4\program=/sbin/reboot
#5\arguments=
#5\envs=
#5\hourOfDay=7
#5\id=REBOOT_7
#5\program=/sbin/reboot
#6\arguments=
#6\envs=
#6\hourOfDay=13
#6\id=REBOOT_13
#6\program=/sbin/reboot
size=3
[BACKLIGHT]
SensorMax=3500
SensorMin=0
curve=1
dimLowValue=499
dimMax=100
dimMin=20
inputBrightness=499
[COMMON]
startBacklightController=true
startMQTTController=true
startMonitoringController=true
startSuspendController=false
[MONITORING]
http_dataFormat=HTTP
http_host=127.0.0.1
http_ignoreSslErrors=on
http_port=5000
http_protocol=http
http_service=
monitoring_heartbeatInterval=60
protocol=mqtt
useDeviceId=on
useRingbuffer=on
[MQTT]
mqtt_QoS=0
mqtt_TopicDeviceType=MP
mqtt_TopicPrefix=ATB
mqtt_TopicScheme=ATB_ISMAS
mqtt_debug=on
mqtt_host=mqtt2.atb-comm.de
mqtt_password=xyz123
mqtt_port=8883
mqtt_useSsl=on
mqtt_username=testuser
[NETWORKCHECK]
PingHost=google.com
networkRestart=/sbin/ifup -a
setOOO=off
useNetworkCheck=on
[SUSPEND]
program=/home/root/system_powerdown_wakeup.sh
suspendLoopTimerValue=8

102
etc/atbapp/ATBAPP.ini Normal file
View File

@ -0,0 +1,102 @@
[COMMON]
com_port_name=/dev/ttyS2
com_baud_rate=9600
lang1=de_AT
lang2=en_GB
lang3=it_IT
lang4=cs_CZ
defaultLanguage=1
CharacterSet="ISO 8859-15"
#useLanguage=[128+][64+][32+][16]
useLanguage=240
#usePayment=[128+][64+][32+][16]
usePayment=96
#useVehicle=[128+][64+][32+][16]
useVehicle=224
useProduct=224
showInfoButton=false
showHelpButton=false
textfile=/opt/app/ATBAPP/text/HMI_Texte.xml
logfile=/var/log/atbqt.log
alternativeLogoFile=
#alternativeLogoFile=
feature_Log=off
feature_TouchFeedback=off
feature_StartButton=on
feature_selfOOO=off
feature_ShowParkingTime=off
touch_feedback_gpio=121
touch_feedback_on_value=1
touch_feedback_off_value=0
#ooo_mode={useDisk|otherMachine}
ooo_mode=useDisk
sellTimeout_time=60
useAppStates=1
statefile=/opt/app/ATBAPP/states/APP_States.xml
[SCREENCONFIG]
sc_31="0,1,0"
sc_33="1,0,1"
sc_3F="1,0,0"
sc_40="1,0,1"
sc_41="1,0,1"
sc_44="1,0,1"
sc_35="0,0,0"
sc_51="1,0,1"
sc_52="1,0,0"
sc_53="1,0,0"
[PLUGINS]
CCPlugin=TCP_ZVT_CCPlugin
CalculatePricePlugin=MOBILISIS_CalculatePricePlugin
DeviceControllerPlugin=ATBDeviceControllerPlugin
[TCP_CONTROL]
enable=0
[PAYMENT]
currencySymbol=
currencyISOCode=EUR
cashVariant=Coins
paymentPointInTime=poa
useDecimal=yes
[MOBILISIS_CalculatePricePlugin]
useDebug=1
tariffFileName=/etc/psa_tariff/tariff01.json
[ATBDeviceControllerPlugin]
serialPort=ttymxc2
printerEncoding="Windows-1252"
[IngenicoZVT_CCPlugin]
debug=1
PortName=/dev/ttyS3
ZVT=AT
sleep=0
CurrencyCode=EUR
dcHours="0"
[TCP_ZVT_CCPlugin]
CurrencyCode=EUR
debug=1
IP=192.168.6.242
Port=22000
SSL=0
ZVT=DE
sleep=1
printIntermediateStatus=1
Password=749729
NumberOfChars=37
dcHours="0"

View File

@ -0,0 +1,217 @@
<?xml version="1.0" encoding="UTF-8"?>
<ATB_APP_STATES version="1.1">
<APP_STATE name="IDLE">
<EVENT name="BUTTON_START" resultingState="SETUP_SELL_STATE"/>
<EVENT name="SELL_DISABLE" resultingState="FREE_PARK"/>
<!-- <EVENT name="RECEIVED_DC_COIN_ATTACHED" resultingState="SETUP_DIRECT_COIN_INPUT"/> -->
<SCREEN name="START"/>
<MODE name="IDLE"/>
</APP_STATE>
<APP_STATE name="FREE_PARK">
<EVENT name="SELL_ENABLE" resultingState="IDLE"/>
<SCREEN name="START"/>
<MODE name="IDLE"/>
</APP_STATE>
<APP_STATE name="SETUP_DIRECT_COIN_INPUT">
<ENTRY_TASK name="TIMER" timeout="500"/>
<EVENT name="TIMEOUT" resultingState="CASH_PAYMENT"
setCashInputMode="PAY_UP"
setProduct="SHORT_TERM_PARKING"
setPaymentType="CASH"/>
</APP_STATE>
<APP_STATE name="SETUP_SELL_STATE">
<ENTRY_TASK name="TIMER" timeout="500"/>
<EVENT name="TIMEOUT" resultingState="PARKTIME_SELECTION" setCashInputMode="PAY_DOWN" setProduct="SHORT_TERM_PARKING"/>
</APP_STATE>
<APP_STATE name="LICENSEPLATE_INPUT">
<EVENT name="BUTTON_CANCEL" resultingState="IDLE"/>
<EVENT name="BUTTON_NEXT" resultingState="PRODUCT_SELECTION"/>
<SCREEN name="LICENSEPLATE_INPUT"/>
</APP_STATE>
<APP_STATE name="PRODUCT_SELECTION">
<EVENT name="BUTTON_CANCEL" resultingState="IDLE"/>
<EVENT name="BUTTON_VEHICLE_1" resultingState="PAYMENT_SELECTION_SHORT_TIME" setCashInputMode="PAY_UP" setProduct="SHORT_TERM_PARKING"/>
<EVENT name="BUTTON_VEHICLE_2" resultingState="PAYMENT_SELECTION_DAY" setCashInputMode="PAY_DOWN" setProduct="DAY_TICKET"/>
<SCREEN name="PRODUCT_SELECTION"/>
</APP_STATE>
<APP_STATE name="PARKTIME_SELECTION">
<ENTRY_TASK name="REQUEST_INITIAL_PRICE"/>
<EVENT name="BUTTON_PLUS_STEP" resultingState="PARKTIME_SELECTION_PLUS"/>
<EVENT name="BUTTON_MINUS_STEP" resultingState="PARKTIME_SELECTION_MINUS"/>
<EVENT name="BUTTON_CANCEL" resultingState="IDLE"/>
<EVENT name="BUTTON_BACK" resultingState="IDLE"/>
<EVENT name="BUTTON_NEXT" resultingState="PAYMENT_SELECTION"/>
<SCREEN name="PARKTIME_SELECTION"/>
</APP_STATE>
<APP_STATE name="PARKTIME_SELECTION_PLUS">
<ENTRY_TASK name="REQUEST_STEP_UP_PRICE"/>
<EVENT name="BUTTON_PLUS_STEP" resultingState="PARKTIME_SELECTION_PLUS"/>
<EVENT name="BUTTON_MINUS_STEP" resultingState="PARKTIME_SELECTION_MINUS"/>
<EVENT name="BUTTON_CANCEL" resultingState="IDLE"/>
<EVENT name="BUTTON_BACK" resultingState="IDLE"/>
<EVENT name="BUTTON_NEXT" resultingState="PAYMENT_SELECTION"/>
</APP_STATE>
<APP_STATE name="PARKTIME_SELECTION_MINUS">
<ENTRY_TASK name="REQUEST_STEP_DOWN_PRICE"/>
<EVENT name="BUTTON_PLUS_STEP" resultingState="PARKTIME_SELECTION_PLUS"/>
<EVENT name="BUTTON_MINUS_STEP" resultingState="PARKTIME_SELECTION_MINUS"/>
<EVENT name="BUTTON_CANCEL" resultingState="IDLE"/>
<EVENT name="BUTTON_BACK" resultingState="IDLE"/>
<EVENT name="BUTTON_NEXT" resultingState="PAYMENT_SELECTION"/>
</APP_STATE>
<APP_STATE name="PAYMENT_SELECTION">
<EVENT name="BUTTON_CANCEL" resultingState="IDLE"/>
<EVENT name="BUTTON_PAYMETHOD_1" resultingState="IDLE"/>
<EVENT name="BUTTON_PAYMETHOD_2" resultingState="CASH_PAYMENT" setPaymentType="CASH"/>
<EVENT name="BUTTON_PAYMETHOD_3" resultingState="CARD_PAYMENT" setPaymentType="CARD"/>
<EVENT name="BUTTON_PAYMETHOD_4" resultingState="IDLE"/>
<SCREEN name="PAYMENT_SELECTION"/>
</APP_STATE>
<APP_STATE name="CARD_PAYMENT">
<ENTRY_TASK name="REQUEST_PARKING_ENDTIME" key="PRICE_INFO_GROSS"/>
<ENTRY_TASK name="REQUEST_CC_START_TRANSACTION"/>
<EVENT name="RECEIVED_CARD_TRANSACTION_SUCCESS" resultingState="PRINT_TICKET_CARD"/>
<EVENT name="RECEIVED_CARD_TRANSACTION_ERROR" resultingState="CC_PAYMENT_ERROR"/>
<EVENT name="BUTTON_CANCEL" resultingState="USER_CC_ABORT"/>
<SCREEN name="CC_PAYMENT"/>
</APP_STATE>
<APP_STATE name="CASH_PAYMENT">
<ENTRY_TASK name="REQUEST_CASH_INPUT"/>
<EVENT name="RECEIVED_CASH_INPUT" resultingState="CASH_PAYMENT_INPUT"/>
<EVENT name="RECEIVED_CASH_INPUT_ERROR" resultingState="CASH_PAYMENT_ERROR"/>
<EVENT name="BUTTON_CANCEL" resultingState="CASH_PAYMENT_ABORT"/>
<SCREEN name="COIN_PAYMENT"/>
</APP_STATE>
<APP_STATE name="CASH_PAYMENT_INPUT">
<ENTRY_TASK name="REQUEST_PARKING_ENDTIME"/>
<EVENT name="RECEIVED_CASH_INPUT" resultingState="CASH_PAYMENT_INPUT"/>
<EVENT name="RECEIVED_CASH_INPUT_OVERPAYED" resultingState="CASH_OVERPAYED_ASK"/>
<EVENT name="RECEIVED_CASH_INPUT_FINISHED" resultingState="PRINT_TICKET_CASH"/>
<EVENT name="RECEIVED_CASH_INPUT_ERROR" resultingState="CASH_PAYMENT_ERROR"/>
<EVENT name="BUTTON_CANCEL" resultingState="CASH_PAYMENT_ABORT"/>
<EVENT name="BUTTON_NEXT" task="PAYMENT_ACCEPTED" resultingState="CASH_PAYMENT_INPUT"/>
</APP_STATE>
<APP_STATE name="CASH_PAYMENT_ERROR">
<ENTRY_TASK name="REQUEST_ISMAS_FAIL_TRANSACTION"/>
<ENTRY_TASK name="CASH_ABORT"/>
<ENTRY_TASK name="TIMER" timeout="3000"/>
<EVENT name="TIMEOUT" resultingState="IDLE"/>
<SCREEN name="CASH_PAYMENT_FAILED" note="screennumber 0x39"/>
</APP_STATE>
<APP_STATE name="CASH_OVERPAYED_ASK">
<ENTRY_TASK name="PAYMENT_ACCEPTED"/>
<EVENT name="BUTTON_YES" resultingState="PRINT_TICKET_CASH"/>
<EVENT name="BUTTON_NO" resultingState="CASH_OVERPAYED_ABORT"/>
<SCREEN name="CASH_OVERPAYED" note="screennumber 0x3c"/>
</APP_STATE>
<APP_STATE name="CASH_OVERPAYED_ABORT">
<ENTRY_TASK name="REQUEST_ISMAS_FAIL_TRANSACTION"/>
<ENTRY_TASK name="CASH_ABORT"/>
<ENTRY_TASK name="TIMER" timeout="3000"/>
<EVENT name="TIMEOUT" resultingState="IDLE"/>
<SCREEN name="CASH_CHANGE_OVERPAID" note="screennumber 0x8a"/>
</APP_STATE>
<APP_STATE name="CASH_PAYMENT_ABORT">
<ENTRY_TASK name="REQUEST_ISMAS_FAIL_TRANSACTION"/>
<ENTRY_TASK name="CASH_ABORT"/>
<ENTRY_TASK name="TIMER" timeout="3000"/>
<EVENT name="TIMEOUT" resultingState="IDLE"/>
</APP_STATE>
<!--
<APP_STATE name="PRINT_TICKET_WAIT">
<ENTRY_TASK name="TIMER" timeout="2000"/>
<EVENT name="TIMEOUT" resultingState="PRINT_TICKET"/>
<SCREEN name="BUSY"/>
</APP_STATE>
-->
<APP_STATE name="PRINT_TICKET_CASH">
<ENTRY_TASK name="REQUEST_PRINT_TICKET"/>
<EVENT name="PRINT_TICKET_FINISHED" resultingState="GOODBYE_PAYMENT_OK"/>
<EVENT name="PRINT_TICKET_ERROR" resultingState="PRINT_TICKET_FAILED"/>
<SCREEN name="SCREEN_WAITFOR"/>
</APP_STATE>
<APP_STATE name="PRINT_TICKET_CARD">
<ENTRY_TASK name="REQUEST_PRINT_TICKET"/>
<EVENT name="PRINT_TICKET_FINISHED" resultingState="CARD_PAYMENT_CONFIRM"/>
<EVENT name="PRINT_TICKET_ERROR" resultingState="PRINT_TICKET_FAILED"/>
<SCREEN name="SCREEN_WAITFOR"/>
</APP_STATE>
<APP_STATE name="PRINT_TICKET_FAILED">
<ENTRY_TASK name="REQUEST_CC_CANCEL_TRANSACTION"/>
<ENTRY_TASK name="REQUEST_ISMAS_FAIL_TRANSACTION"/>
<ENTRY_TASK name="CASH_ABORT"/>
<ENTRY_TASK name="TIMER" timeout="3000"/>
<EVENT name="TIMEOUT" resultingState="IDLE"/>
<SCREEN name="PRINT_TICKET_FAILED"/>
</APP_STATE>
<APP_STATE name="CARD_PAYMENT_CONFIRM">
<ENTRY_TASK name="REQUEST_CC_CONFIRM_TRANSACTION"/>
<EVENT name="RECEIVED_CARD_CONFIRM_TRANSACTION_SUCCESS" resultingState="GOODBYE_PAYMENT_OK"/>
<EVENT name="RECEIVED_CARD_CONFIRM_TRANSACTION_ERROR" resultingState="CC_PAYMENT_ERROR"/>
</APP_STATE>
<APP_STATE name="PRINT_RECEIPT">
<ENTRY_TASK name="REQUEST_PRINT_RECEIPT"/>
<EVENT name="PRINT_RECEIPT_FINISHED" resultingState="GOODBYE_PAYMENT_OK"/>
<EVENT name="PRINT_RECEIPT_ERROR" resultingState="PRINT_TICKET_FAILED"/>
</APP_STATE>
<APP_STATE name="GOODBYE_PAYMENT_OK">
<ENTRY_TASK name="CASH_COLLECT"/>
<ENTRY_TASK name="REQUEST_ISMAS_TRANSACTION"/>
<ENTRY_TASK name="TIMER" timeout="5000"/>
<EVENT name="TIMEOUT" resultingState="IDLE"/>
<SCREEN name="GOODBYE_PAYMENT_OK"/>
</APP_STATE>
<APP_STATE name="CC_PAYMENT_ERROR">
<ENTRY_TASK name="REQUEST_ISMAS_FAIL_TRANSACTION"/>
<ENTRY_TASK name="TIMER" timeout="3000"/>
<EVENT name="TIMEOUT" resultingState="IDLE"/>
<SCREEN name="CC_PAYMENT_ERROR"/>
</APP_STATE>
<APP_STATE name="USER_CC_ABORT">
<ENTRY_TASK name="REQUEST_ISMAS_FAIL_TRANSACTION"/>
<ENTRY_TASK name="REQUEST_CC_CANCEL_TRANSACTION"/>
<ENTRY_TASK name="TIMER" timeout="3000"/>
<EVENT name="TIMEOUT" resultingState="IDLE"/>
<SCREEN name="USER_ABORT"/>
</APP_STATE>
<!-- ************** ABORT STATES ************** -->
<APP_STATE name="ABORT_NOCONNECTION">
<ENTRY_TASK name="TIMER" timeout="3000"/>
<EVENT name="TIMEOUT" resultingState="IDLE"/>
<SCREEN name="ABORT_2"/>
</APP_STATE>
<APP_STATE name="ABORT_NOCARD">
<ENTRY_TASK name="TIMER" timeout="3000"/>
<EVENT name="TIMEOUT" resultingState="IDLE"/>
<SCREEN name="ABORT_4"/>
</APP_STATE>
<APP_STATE name="ABORT_CARD_DENIED">
<ENTRY_TASK name="TIMER" timeout="3000"/>
<EVENT name="TIMEOUT" resultingState="IDLE"/>
<SCREEN name="ABORT_5"/>
</APP_STATE>
<APP_STATE name="ABORT_NOT_ALLOWED">
<ENTRY_TASK name="REQUEST_ISMAS_FAIL_TRANSACTION"/>
<ENTRY_TASK name="TIMER" timeout="3000"/>
<EVENT name="TIMEOUT" resultingState="IDLE"/>
<SCREEN name="ABORT_6"/>
</APP_STATE>
</ATB_APP_STATES>

File diff suppressed because it is too large Load Diff

View File

@ -1,16 +1,16 @@
{ {
"title":"DC2C_cash", "title":"DC2C_cash ",
"project":"Christoph Reisen", "project":"Christoph Reisen",
"version":"1.0.0 2024.04.26", "version":"1.0.0 2024.04.26",
"CoinDenom(15..0)":[200,100,50,20,10,5,0,0,0,0,0,0,0,0,0,1], "CoinDenom(15..0)":[200,100,50,20,10,5,0,0,0,0,0,0,0,0,0,1],
"CoinValue(15..0)":[200,100,50,20,10,5,0,0,0,0,0,0,0,0,0,3], "CoinValue(15..0)":[200,100,50,20,10,5,0,0,0,0,0,0,0,0,0,3],
"CoinAccept(15..0)":[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0], "CoinAccept(15..0)":[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0],
"ExchangeRate":1, "ExchangeRate":1,
"TokenChannel":6, "TokenChannel":6,
"BillValues(15..0)":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], "BillValues(15..0)":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
"BillAccept(15..0)":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], "BillAccept(15..0)":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
"LocalTaxRate":19, "LocalTaxRate":19,
"ForeignTaxRate":0, "ForeignTaxRate":0,
"Surcharge":0, "Surcharge":0,
"Discount":0 "Discount":0
} }

View File

@ -23,5 +23,8 @@
"BattWarn":11800, "BattWarn":11800,
"BattErr":11200, "BattErr":11200,
"foreign":1, "foreign":1,
"refPrint":0 "refundPrint":0,
"billWarnLev":400,
"billFullLev":500,
"housing":1
} }

View File

@ -6,17 +6,13 @@
# #
opkg update opkg update
opkg install prepare-update opkg install prepare-update
opkg install atbupdatetool #
opkg install mxt-touch-reset opkg --cache /var/cache/opkg --download-only upgrade atb-dc-libraries
opkg install atb-dc-libraries opkg --cache /var/cache/opkg --download-only upgrade atb-plugin-dc
opkg install ptu5-systemcontroller opkg --cache /var/cache/opkg --download-only upgrade atbqt
opkg install atb-modemtools #
# opkg remove atb-accountingtool opkg --cache /var/cache/opkg upgrade atb-dc-libraries
# opkg install atb-accountingtool opkg --cache /var/cache/opkg upgrade atb-plugin-dc
#opkg --cache /var/cache/opkg --download-only upgrade opkg --cache /var/cache/opkg upgrade atbqt
#opkg --cache /var/cache/opkg upgrade #opkg install --force-downgrade https://firmware.ptu5.atb-comm.de/testing/00700/atb-plugin-calculateprice-mobilisis_1.5.0+git0+034adf9096-r1-00700_cortexa9t2hf-neon.ipk
# opkg remove apism #opkg install --force-downgrade https://firmware.ptu5.atb-comm.de/testing/00700/libmobilisis-calc2_2.1.99+git0+c7623429d9-r0-00700_cortexa9t2hf-neon.ipk
# opkg install apism
opkg info apism
opkg info atbqt
opkg info atbupdatetool