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

Swissbit TSE - Kurzzeitiges Entfernen der TSE wird nicht erkannt

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

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

Swissbit TSE - Kurzzeitiges Entfernen der TSE wird nicht erkannt

  Alt 24. Sep 2020, 23: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
 

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 18:19 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz