AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Swissbit TSE - Kurzzeitiges Entfernen der TSE wird nicht erkannt
Thema durchsuchen
Ansicht
Themen-Optionen

Swissbit TSE - Kurzzeitiges Entfernen der TSE wird nicht erkannt

Ein Thema von bernau · begonnen am 25. Sep 2020 · letzter Beitrag vom 30. Nov 2023
Antwort Antwort
Benutzerbild von bernau
bernau

Registriert seit: 1. Dez 2004
Ort: Köln
1.295 Beiträge
 
Delphi 12 Athens
 
#1

Swissbit TSE - Kurzzeitiges Entfernen der TSE wird nicht erkannt

  Alt 25. Sep 2020, 00:43
Mir ist ein Phänomen aufgefallen, welches ich euch nicht vorenthalten möchte.

Bei drei meiner Kunden tritt regelmäßig ein Fehler auf, den ich versucht habe einzugrenzen. Beim Kassieren, wenn die Funktion "worm_transaction_finish" aufgerufen wird, erhalte ich in unregelmäßigen Abständen bei diesen Kunden den Fehler "WORM_ERROR_IO".

Zuerst dachte ich defekte TSE. Denn bei fast allen Kunden funktioniert die Software. Nur nicht bei diesen drei. Ich habe mir dann die Hardware der Kunden angeben lassen. Auffallend ist, dass alle die TSE in einem Laptop verwenden. Mein erster Gedanke war "Stromsparmodus". Bei allen Geräten habe ich den Stromsparmodus ausgeschaltet. Siehe da. Der Fehler war bei zwei Computern weg. Bei einem wurde es weniger. Anscheinend hat der Stromsparmodus die TSE kurzzeitig ausgeworfen und wieder aktiviert.

Ich habe etwas weiter im Programm nachgeschaut und versucht den Fehler zu provozieren, in dem ich die TSE einfach entfernt habe und wieder eingesteckt habe. Ich frage regelmäßig die Restzeit bis zum nächsten Selbsttest ab und ob der Selbsttest durchgeführt wurde. Witzigerweise wurden mir bei den Funktionen "worm_info_hasPassedSelfTest" und worm_info_timeUntilNextSelfTest gültige werte angegeben. hasPassedSelfTest war true, obwohl dieser eigentlich false sein müsste, denn die TSE wurde ja kurz herausgezogen und wieder eingesteckt. Damit ist ja zwingend ein Selbsttest vorgeschrieben.

Ich habe nach einiger Zeit herausgefunden, dass ein neuer WormContext korrekte Werte liefert. Der alte WormContext hat aber bei allen Funktionen Werte geliefert, denen man nicht ansieht, dass diese falsch sind und eine Exception wurde nicht ausgelößt.

Das bedeutet im Umkehrschluss, einen WormContext sollte man so kurz wie möglich offen halten, denn man weis nicht wirklich wie lange dieser gültig ist. Eine Funktion der die Gültigkeit eines WormContext angibt, gibt es eigentlich nicht.

Vielleicht hilft dem einen oder anderen diese Info
Gerd
Kölner Delphi Usergroup: http://wiki.delphitreff.de
  Mit Zitat antworten Zitat
Daniel
(Co-Admin)

Registriert seit: 30. Mai 2002
Ort: Hamburg
13.920 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Swissbit TSE - Kurzzeitiges Entfernen der TSE wird nicht erkannt

  Alt 25. Sep 2020, 06:27
weia - danke für den Hinweis!
Daniel R. Wolf
mit Grüßen aus Hamburg
  Mit Zitat antworten Zitat
Benutzerbild von bernau
bernau

Registriert seit: 1. Dez 2004
Ort: Köln
1.295 Beiträge
 
Delphi 12 Athens
 
#3

AW: Swissbit TSE - Kurzzeitiges Entfernen der TSE wird nicht erkannt

  Alt 25. Sep 2020, 12:30
Bei meinen Kunden wird nicht so oft kassiert. Alle 30 Min mal. Auch wenn ich jetzt herausgefunden habe, das der WormContext ungültigt wird und dieser einfach erneuert werden muss, bleibt das Problem, dass die TSE kurzzeitig entfernt wird. Mit neuem WormContext wird mir zwar nun angezeigt, dass ein Selbsttest durchgeführt werden muss. Aber das ist ja nervig, dass vor jedem Kassieren erst mal der Selbsttest durchgeführt wird.

Ich schreibe nun regelmässig eine leere Datei auf die TSE um ein auswerfen der TSE nach Leerlauf zu vermeiden. Vielleicht bring es was.
Gerd
Kölner Delphi Usergroup: http://wiki.delphitreff.de
  Mit Zitat antworten Zitat
Neumann

Registriert seit: 6. Feb 2006
Ort: Moers
535 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Swissbit TSE - Kurzzeitiges Entfernen der TSE wird nicht erkannt

  Alt 26. Sep 2020, 16:48
Das habe ich auch schon festgestellt, dass teilweise merkwürdige Werte von der TSE kommen. Beispiel: Ist das Intervall für Settime abgelaufen, liefert TimetoNextSelftest 90000 Sekunden, als wenn der Selbsttest gerade gemacht worden wäre.

Ich logge jetzt alles mit Start, Stop Transaction, Settime, Selftest usw. Das hat mir geholfen die letzten Fehler zu finden. Ich kenne die genaue Zahl, nicht, aber wir haben inzwischen sicher mehr als 200 TSE ausgeliefert die alle im Dauerbetrieb sind, für Kassen im Verbund haben wir eine Serveranwendung entwickelt.

Inzwischen läuft das Ganze weitgehend störungsfrei, aber hat etwas gedauert.
Ralf
Gruß vom Niederrhein
  Mit Zitat antworten Zitat
tkhandel

Registriert seit: 2. Jan 2022
Ort: Arnsberg im Sauerland
87 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: Swissbit TSE - Kurzzeitiges Entfernen der TSE wird nicht erkannt

  Alt 29. Nov 2023, 22:36
Ist zwar ein altes Thema aber diese Probleme haben wir mit unseren mobilen
Kassen ständig.
Wir setzen Windows Tablets (10,1") als mobile Kassenlösung
ein, es werden pro Tag meistens unter 50 Verkäufe im Lieferservice absolviert
ich muss die Tablets immer unter Volllast laufen lassen damit die TSE aktiv bleibt.
Langsam gehen uns die bezahlbaren Ruggedtablets mit Windows aus die funktionieren.
Jürgen
  Mit Zitat antworten Zitat
Benutzerbild von bernau
bernau

Registriert seit: 1. Dez 2004
Ort: Köln
1.295 Beiträge
 
Delphi 12 Athens
 
#6

AW: Swissbit TSE - Kurzzeitiges Entfernen der TSE wird nicht erkannt

  Alt 30. Nov 2023, 19:52
SD-Card oder USB-Stick?

Was heißt " immer unter Volllast laufen lassen".

Verwendest du "worm_keepalive_configure"?
Gerd
Kölner Delphi Usergroup: http://wiki.delphitreff.de
  Mit Zitat antworten Zitat
tkhandel

Registriert seit: 2. Jan 2022
Ort: Arnsberg im Sauerland
87 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: Swissbit TSE - Kurzzeitiges Entfernen der TSE wird nicht erkannt

  Alt 30. Nov 2023, 21:33
nein habe ich nicht verwendet, ich habe alles mögliche ausprobiert
es ist nur so das die Tablet im Akkubetrieb laufen müssen da sie immer
mit zum Kunden genommen werden. Jegliche Energiespareinstellung auch das
abschalten des Bildschirms reicht unter Windows um auch USB oder Cardreader
schlafen zu legen.
Hast du ein Beispiel für mich mich? vieleicht hab ich was übersehen.
Jürgen
  Mit Zitat antworten Zitat
Benutzerbild von bernau
bernau

Registriert seit: 1. Dez 2004
Ort: Köln
1.295 Beiträge
 
Delphi 12 Athens
 
#8

AW: Swissbit TSE - Kurzzeitiges Entfernen der TSE wird nicht erkannt

  Alt 30. Nov 2023, 22:04
Beispiel für "worm_keepalive_configure".

Schau mal hier:

https://www.delphipraxis.net/204986-...g-des-bmf.html


Im Quellcode danach suchen.
Gerd
Kölner Delphi Usergroup: http://wiki.delphitreff.de
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:10 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz