Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Swissbit DLL - Diverse Fragen (https://www.delphipraxis.net/202858-swissbit-dll-diverse-fragen.html)

hhcm 16. Dez 2019 11:39

Swissbit DLL - Diverse Fragen
 
Hallo zusammen,

da sich ja manche schon als Nutzer der Swissbit TSE "geoutet" haben, werde ich hier vielleicht die ein oder andere Frage los.
Nachdem ich 10x in der Doku überlesen habe, dass der erste Selbsttest mit einem Fehler abschmiert und das völlig in Ordnung ist, ging es auch weiter.
Selbst-Test, Setup, Diverse Info´s auslesen, Zeit updaten, Einloggen - Soweit so gut.

Ich versuche jetzt seit Stunden das Log-Zertifikat auszulesen

Code:
WORMAPI WormError WORMAPI_CALL worm_getLogMessageCertificate    (    
      WormContext *     context,
      unsigned char *     certificate,
      uint32_t *     certificateLength
   )
( wurde bisher in der gefühlt 100 Fassung zu )

Delphi-Quellcode:
function worm_getLogMessageCertificate(context: IntPtr; out certificate: PBytes; out certificateLength: PUInt32): Integer; cdecl; external 'WormAPI.dll';


Egas was ich anstelle, entweder gibt entweder eine AV oder das Result ist WORM_ERROR_INVALID_PARAMETER.
In der Doku steht, das man den Buffer (in dem Fall certificate) selbst initialisieren muss. Selbst da habe ich von GetMem bis SetLength mit den unterschiedlichsten Typen alles durch.

Hat da jedmand mal nen Tip?

DeddyH 16. Dez 2019 11:51

AW: Swissbit DLL - Diverse Fragen
 
Bei mir ist Certificate als PByte deklariert (ohne out). Ich rufe dann die Funktion einmal mit nil auf, um die Länge zu ermitteln, reserviere mir dann mit GetMem den entsprechenden Speicher und rufe die Funktion erneut mit dem entsprechenden Pointer auf. Zum Schluss das FreeMem nicht vergessen.

hhcm 16. Dez 2019 12:08

AW: Swissbit DLL - Diverse Fragen
 
Ich glaub das jetzt nicht. Das hab ich 5x ausprobiert. Sowohl mit PBytes als auch PByte.
Das zweimalige aufrufen steht bei mir schon die ganze Zeit im Code. Die Länge habe ich auch immer zurück bekommen. Der zweite Aufruf wurde immer mit einer AV gekrönt.

Warum auch immer, jetzt gehts. Danke !

hhcm 17. Dez 2019 17:28

AW: Swissbit DLL - Diverse Fragen
 
Hat schon mal jemand einen "extrahierbaren" Tar Export hinbekommen?

Ich bekomme keine Fehler aber das Tar-Archiv lässt sich mit keinem Programm extrahieren.

Delphi-Quellcode:
  TWormExportTarCallback = function(chunk: PBytes; chunkLength: Cardinal; callbackData: PBytes): Integer; cdecl;

  function worm_export_tar(context: IntPtr; callback: TWormExportTarCallback; callbackData: Pointer): Integer; cdecl; external 'WormAPI.dll';

DeddyH 18. Dez 2019 06:36

AW: Swissbit DLL - Diverse Fragen
 
Bei mir sieht das so aus:
Delphi-Quellcode:
// TChunkLength = UINT32
function Callback(const Chunk: PByte; ChunkLength: TChunkLength;
  CallbackData: Pointer): integer; Cdecl;
var
  Stream: TMemoryStream;
begin
  Stream := TMemoryStream(CallbackData);
  Stream.Write(Chunk^, ChunkLength);
  Result := 0;
end;
Anschließend erzeuge ich einen MemoryStream und übergebe diesen als CallbackData an worm_export_tar.
Delphi-Quellcode:
Stream := TMemoryStream.Create;
try
  worm_export_tar(Context, Callback, Stream);
finally
  Stream.Free;
end;

hhcm 18. Dez 2019 07:18

AW: Swissbit DLL - Diverse Fragen
 
Dann muss es was anderes sein.
Auch in dieser Variante sagt 7-Zip mir, Die Datei kann nicht als Archiv geöffnet werden.

Entpacken über Linux bringt mich aber glaube ich weiter.

Code:
time stamp 2019-12-18 09:07:44 is 3133.460484916 s in the future

DeddyH 18. Dez 2019 07:21

AW: Swissbit DLL - Diverse Fragen
 
Hast Du die aktuelle Version von 7-zip? Ich hatte auch erst eine veraltete, die aktuelle kann aber mit dem Archiv umgehen.

Neumann 18. Dez 2019 09:07

AW: Swissbit DLL - Diverse Fragen
 
Ich habe da auch noch einige Probleme mit meiner Swissbit-TSE.

Es geht einiges: Reset, Init,Setup, Settime, Transactionen, Seriennummer auslesen, PublicKey auslesen.

Was (noch) nicht geht ist:

Zusätzlichen Client anlegen Fehler 3 (IO Error), versuche ich so:

Function worm_tse_registerClient(context:pointer;clientid:p ansichar):integer;cdecl; external 'WormAPI.dll';

Clients auslesen Fehler 1 Wrong Input Parameter

Dann noch Dinge die mich um die Praxistauglichkeit fürchten lassen:

Nach Startendes Rechners aus dem Ruhezustand oft keine Funktion; nicht mal Init geht dann.
Abhilfe ist dann Karte rausnehmen und wieder einstecken.



Beim Einstecken fast regelmäßig Meldung von Windows das Laufwerk muss repariert werden, was ich Windows auch machen lasse da sonst oft kein Funktion

hhcm 18. Dez 2019 09:08

AW: Swissbit DLL - Diverse Fragen
 
Zitat:

Hast Du die aktuelle Version von 7-zip? Ich hatte auch erst eine veraltete, die aktuelle kann aber mit dem Archiv umgehen.
:roll: Oh mann. Was soll ich dazu jetzt sagen :) Danke ! Das war´s

hhcm 18. Dez 2019 09:23

AW: Swissbit DLL - Diverse Fragen
 
Zitat:

Zitat von Neumann (Beitrag 1453670)
Function worm_tse_registerClient(context:pointer;clientid:p ansichar):integer;cdecl; external 'WormAPI.dll';

Wie rufst du die Funktion auf?

Delphi-Quellcode:
worm_tse_registerClient(context, PAnsiChar('Client4711'));
Bei mir geht das ohne Fehler.

DeddyH 18. Dez 2019 09:36

AW: Swissbit DLL - Diverse Fragen
 
Bei mir auch. Allerdings kenne ich das Problem mit dem Ruhezustand auch, eine komplette Neuinitialisierung funktioniert aber zum Glück meistens.

Frickler 18. Dez 2019 09:51

AW: Swissbit DLL - Diverse Fragen
 
Zitat:

Zitat von Neumann (Beitrag 1453670)
Dann noch Dinge die mich um die Praxistauglichkeit fürchten lassen:

Nach Startendes Rechners aus dem Ruhezustand oft keine Funktion; nicht mal Init geht dann.
Abhilfe ist dann Karte rausnehmen und wieder einstecken.

Das haben wir schon bei der RKSV-Lösung gelernt: wenn eine Sicherheitseinrichtung im PC steckt, muss der Windows-Schnellstart deaktiviert werden.

hhcm 18. Dez 2019 10:09

AW: Swissbit DLL - Diverse Fragen
 
Zitat:

Zitat von Neumann (Beitrag 1453670)
Clients auslesen Fehler 1 Wrong Input Parameter

Das hab ich wie folgt gelöst. (Geht bestimmt schöner)

Delphi-Quellcode:
type
  TClientId = array [0..30] of AnsiChar;
  TWormClients = packed record
    amount: Integer;
    clientIds: array [0..16] of TClientId;
  end;
  PWormClients = ^TWormClients;

 function worm_tse_listRegisteredClients(context: IntPtr; toSkip: Integer; clients: PWormClients): Integer; cdecl; external 'WormAPI.dll';


...
var
  res, i: Integer;
  clients: PWormClients;
  tmp: AnsiString;
begin
  res := worm_tse_listRegisteredClients(worm_context, 0, clients);

  if (res <> 0) then
    raise EWormException.Create(res);

  for i := 0 to clients.amount - 1 do
  begin
    tmp := clients.clientIds[i];
    // Mach was mit den ClientID´s
  end;
end;

Neumann 18. Dez 2019 16:27

AW: Swissbit DLL - Diverse Fragen
 
Danke, das funktioniert.

hhcm 18. Dez 2019 16:57

AW: Swissbit DLL - Diverse Fragen
 
Zitat:

Zitat von Neumann (Beitrag 1453691)
Danke, das funktioniert.

:thumb:

Jetzt dachte ich, langsam hab ich die API komplett verstanden, jetzt häng ich schon wieder seit Stunden an den Transaktionen.
Eine Lognachricht wird in der TSE gespeichert, ich bekomme aber kein WormTransactionResponse hin.
Eigentlich habe ich soweit das C# Programm nachgeahmt - heißt - alles in Klassen verpackt.

Delphi-Quellcode:
function worm_transaction_response_new(context: IntPtr): IntPtr; cdecl; external 'WormAPI.dll';
procedure worm_transaction_response_free(const response_pointer: IntPtr); cdecl; external 'WormAPI.dll';
function worm_transaction_response_transactionNumber(const response_pointer: IntPtr): worm_uint; cdecl; external 'WormAPI.dll';
function worm_transaction_start(context: IntPtr; clientId: PAnsiChar; processData: PByte; processDataLength: worm_uint; processType: PAnsiChar; response: Pointer): Integer; cdecl; external 'WormAPI.dll';

type
  WormTransactionResponse = class
  private
    response_pointer: IntPtr;
  public
    constructor Create(worm_context: IntPtr);
    destructor Destroy; Override;
    function TransactionNumber: worm_uint;
  end;

implementation

constructor WormTransactionResponse.Create(worm_context: IntPtr);
begin
  response_pointer := worm_transaction_response_new(worm_context);
  // Hier bekomme ich eine Adresse.
end;

destructor WormTransactionResponse.Destroy;
begin
  worm_transaction_response_free(response_pointer);
  inherited;
end;

function WormTransactionResponse.TransactionNumber: worm_uint;
begin
  result := worm_transaction_response_transactionNumber(response_pointer);
end;

...

var
  res: Integer;
  Response: WormTransactionResponse;
  transId: worm_uint;
begin
  Response := WormTransactionResponse.Create(worm_context); // Hier ist Response scheinbar gültig
  // Mache ich hier Response.Free ist alles gut. Heisst ich habe eine gültige Adresse.
  try
    res := worm_transaction_start(worm_context, PAnsiChar(clientId), nil, 0, PAnsiChar(processType), @Response);
    // res ist 0 . Aber die Adresse von Response hat sich verändert

    if (res <> 0) then
      raise EWormException.Create(res);

    transId := Response.TransactionNumber; //  Hier Krachts, da Response auf eine falsche Adresse zeigt.
  finally
     Response.Free;
  end;

end;
Hat da jemand eine Erklärung zu? :shock:

hhcm 18. Dez 2019 22:04

AW: Swissbit DLL - Diverse Fragen
 
Hat sich erledigt :roll:

Ich sollte natürlich nur den Pointer (response_pointer) und nicht die Klasse Repsonse übergeben.

Frickler 20. Dez 2019 14:43

AW: Swissbit DLL - Diverse Fragen
 
Kann die Swissbit TSE eigentlich an eine VM (VMware 15.5) "durchgereicht" werden?

hhcm 20. Dez 2019 15:21

AW: Swissbit DLL - Diverse Fragen
 
Ist nicht die direkte Antwort auf die Frage - Mit HyperV hab ich´s jedenfalls noch nicht hinbekommen.
Die Swissbit TSE erwartet als Mountpoint einen Laufwerksbuchstaben. Das ist Tricky

ISMIRSCHLECHT 23. Jan 2020 14:28

AW: Swissbit DLL - Diverse Fragen
 
Hi,

hier scheinen ja viele Leidensgenossen auf dem Weg nach Canossa zu sein :-)

Also die "Objekte", die in der DLL lauern, habe ich mit IntPtr angesprochen

Für Bytefelder wie PINs habe ich mir einen hübschen Objekttyp gebacken, der das Member
B: TUnchar mit TUnChar = array of Byte enthält

Clientid ist bei mir ansistring, wird aber mit
pansichar(client) übergeben (beim Neuregistrieren eines Clienten)

Das Responseobjekt ist auch ein IntPtr, ebenso die Kollegen Wormcontext und Worminfo

Um ein TAR-Archiv vernünftig ansehen zu können braucht man das Programm "AmadeusVerify", falls man an Gastrmist gebunden ist.
Im dortigen Forum ist auch ein nachvollziehbares Beispiel zum TAR-Export.
Man programmiere gleich den gefilterten Export, das braucht man sowieso irgendwann.
Beim Auslesen der Finish-Signatur ist mir was Lustuges passiert:
Das Programm funktioniert nicht in der IDE, wenn der Debugger dranhängt.
Siehe mein anderer Thread von heute in Delphi-IDE

So, ich hoffe wir bleiben in Verbindung und können uns helfen.
ism :-D

ISMIRSCHLECHT 30. Jan 2020 09:14

AW: Swissbit DLL - Diverse Fragen
 
Hallo,

nochmal zum Zertifikat:
Wo in der Doku habt Ihr worm_getLogMessageCertificate()
aufgetrieben ?
Gruss ism

herbstrot 30. Jan 2020 09:43

AW: Swissbit DLL - Diverse Fragen
 
Moin,

in der HTML-Doku unter Modules/Exporting Stored Data
Da steht:
Zitat:

WORMAPI WormError WORMAPI_CALL worm_getLogMessageCertificate ( WormContext * context,
unsigned char * certificate,
uint32_t * certificateLength
)

Returns the certificate that can be used to verify the signatures of all Log Messages created by the TSE.

The returned data is a single PEM file, which contains multiple certificates, since the TSE's certificate is signed by other certificates. To verify the signature, only the leaf certificate (the first one in the PEM file) is required. To make sure the leaf certificate is genuine, the next certificate in the file can be used to verify the previous certificate until the last certificate is about to be checked, which will be the root certificate that must be trusted by the system.

Since the whole chain might be quite large, it is advised to supply a big certificate buffer (i.e. several kilobytes). If the buffer is too small, the method will fail.

Note
This command requires an active CTSS interface.

Parameters
[in] context Library context
[out] certificate Output buffer. Must be allocated by the caller. If this is NULL, only the required length for the buffer will be stored in certificateLength.
[in,out] certificateLength Length of the certificate buffer. After a successful execution, this will contain the number of bytes that were written to the output buffer.

ISMIRSCHLECHT 30. Jan 2020 09:50

AW: Swissbit DLL - Diverse Fragen
 
Hi,

das ist ja bekloppt wie'n Schnitzel. In der Abteilung EXPORTE habe ich natürlich nicht gesucht.
Na dann... :-D
ism

ISMIRSCHLECHT 5. Feb 2020 13:15

AW: Swissbit DLL - Diverse Fragen
 
Mahlzeit,

nochmal zum Problem der Clientenliste von DeddyH.

Wie bzw. wann hast Du die clients: PWormClient erzeugt ?
ism

hhcm 5. Feb 2020 13:36

AW: Swissbit DLL - Diverse Fragen
 
Welches Problem?

Ich habe eine Unit WormTypes. Da steht unter anderem

Code:
type
  // Clients
  TClientId = array [0 .. 30] of AnsiChar;

  TWormClients = packed record
    amount: Integer;
    clientIds: array [0 .. 16] of TClientId;
  end;

  PWormClients = ^TWormClients;
drin. In meiner WormStore Klasse gibts folgendes.

Code:
function WormStore.tse_listRegisteredClients: TStringList;
var
  res: Integer;
  i: Integer;
  clients: PWormClients;
begin
  New(clients);
  Result := TStringList.Create;
  try
    res := worm_tse_listRegisteredClients(worm_context, 0, clients);

    if (res <> WORM_ERROR_NOERROR) then
      raise EWormException.Create(res);

    for i := 0 to clients.amount - 1 do
      Result.Add(clients.clientIds[i]);
  finally
    Dispose(clients);
  end;
end;
Aufgerufen wird´s z.B so.

Code:
var clients: TStringlist;
...

clients := WormAccessInstanz.tse_listRegisteredClients;
try
  Memo1.Lines.Add('Registered Clients: ' + clients.CommaText);
finally
  clients.Free;
end;

ISMIRSCHLECHT 5. Feb 2020 13:39

AW: Swissbit DLL - Diverse Fragen
 
Hallo,

ja, inzwischen hab ichs auch so.
ism

arnof 5. Feb 2020 15:53

AW: Swissbit DLL - Diverse Fragen
 
Um ein TAR-Archiv vernünftig ansehen zu können braucht man das Programm "AmadeusVerify", falls man an Gastrmist gebunden ist.

Swissbit hatte Mitte Jan auf einer Veranstaltung bekannt gegeben, das es einen Online TAR Prüfer geben soll, der soll Anfang Feb auf deren Webseite zu finden sein. Ich habe noch nicht geschaut und die 500 Euronen für das Verify Tool ausgegeben ;-)

hhcm 5. Feb 2020 16:56

AW: Swissbit DLL - Diverse Fragen
 
Ich habe gerade nen Update bekommen. (TSE-API v5.5.1)
Dazu noch PDF Dokumentationen von Swissbit. Ein Komplett-Export (wird bevorzugt z.B so gemacht)

Code:
cat TSE_TAR.001 TSE_TAR.002 TSE_TAR.003 ... > TSE_TAR.tar
Ich glaube ich warte noch 3-4 Monate. Da wird sich noch einiges zeigen.

DeddyH 6. Feb 2020 10:19

AW: Swissbit DLL - Diverse Fragen
 
Bist Du Dir bezüglich der Version sicher? Wir finden da nur eine aktualisierte 5.4. Muss ich meine Brille putzen?

hhcm 6. Feb 2020 10:34

AW: Swissbit DLL - Diverse Fragen
 
Ja. Changelog sieht so aus.

Zitat:

# Changelog
All notable changes to this project will be documented in this file.

## 5.5.1 - 2020-02-04
- update documentation of `worm_tse_runSelfTest`
- update documentation of `worm_tse_updateTime`

## 5.5 - 2020-02-04
- java: include wrapper source code in SDK
- allow `worm_tse_setup` to be called again after it previously failed
- implement background thread to prevent a possible
`WORM_ERROR_SIG_ERROR` (0xFF00), especially during startup of the
TSE, before a valid time has been set
- update documentation of `worm_info_tseDescription`
- update documentation of `worm_init`
- add documentation about thread safety

## 5.4 - 2020-01-20
- add `worm_logTimeFormat`
- add stricter validity checks for entries that are returned by
`worm_entry_iterate_*` methods
- add fast incremental TAR export with `worm_export_tar_incremental`

etc.
Ich muss dazu sagen, dass ich meine TSE NICHT von GastroMIS habe. Sondern von einem anderen Swissbit Partner.

jaenicke 6. Feb 2020 10:36

AW: Swissbit DLL - Diverse Fragen
 
Zitat:

Zitat von ISMIRSCHLECHT (Beitrag 1455850)
Um ein TAR-Archiv vernünftig ansehen zu können braucht man das Programm "AmadeusVerify", falls man an Gastrmist gebunden ist.

Mit PeaZip konnte ich das heruntergeladene Archiv (zumindest von Epson) problemlos öffnen. Die Standardtools wie 7zip haben damit ein Problem. Alternativ kann man für einen kurzen Blick auch einfach einen Texteditor nehmen. Die Struktur von .tar Dateien ist ja recht simpel.

hhcm 6. Feb 2020 10:39

AW: Swissbit DLL - Diverse Fragen
 
7zip muss nur auf der aktuellsten Version sein, dann machts auch keine Probleme.

noisy_master 6. Feb 2020 11:19

AW: Swissbit DLL - Diverse Fragen
 
Hmm, die 5.5.1 gibt es, aber dafür ist der Documentation Folder quasi leer... Woher hast du das ergänzende PDF?

hhcm 6. Feb 2020 11:22

AW: Swissbit DLL - Diverse Fragen
 
Wie gesagt, ich bin bei einem anderen Swissbit Partner (Partner Tech). Ich habe dort 8 PDF´s dazu bekommen. Datenblätter, ReleaseNotes, Verpackungsprüfanweisung und halt erweiterte Firmware Guides. Alles von Swissbit selbst. Das sollte bei euch doch auch mit ausgeliefert worden sein oder nicht?

arnof 6. Feb 2020 12:00

AW: Swissbit DLL - Diverse Fragen
 
Zitat:

Zitat von jaenicke (Beitrag 1456820)
Zitat:

Zitat von arnof (Beitrag 1456763)
Um ein TAR-Archiv vernünftig ansehen zu können braucht man das Programm "AmadeusVerify", falls man an Gastrmist gebunden ist.

Mit PeaZip konnte ich das heruntergeladene Archiv (zumindest von Epson) problemlos öffnen. Die Standardtools wie 7zip haben damit ein Problem. Alternativ kann man für einen kurzen Blick auch einfach einen Texteditor nehmen. Die Struktur von .tar Dateien ist ja recht simpel.

Irgendwie ist das Zitat nicht korrekt:

TAR Archiv anschauen ja; hast Du denn mal die Logs bzw den Inhalt geprüft .... Dazu kann man von Gastro MIS das Tool verwenden. Wie schon mal geschrieben SwissBit will sowas Online Anbieten (kostenfrei) ....

Ich will aber das machen, was man machen kann, damit man mit dem Thema durch ist und unsere TSE's endlich ausliefern kann und wieder Dinge Programmieren , die Spass machen, statt so ein "Sch..ss"

arnof 6. Feb 2020 12:04

AW: Swissbit DLL - Diverse Fragen
 
Zitat:

Zitat von jaenicke (Beitrag 1456820)
Um ein TAR-Archiv vernünftig ansehen zu können braucht man das Programm "AmadeusVerify", falls man an Gastrmist gebunden ist.

Die Aussage bzw das Zitat ist nicht von mir ;-) Die kommt von ismirschlecht ;-)

TAR Archiv anschauen ja; hast Du denn mal die Logs bzw den Inhalt geprüft .... Dazu kann man von Gastro MIS das Tool verwenden. Wie schon mal geschrieben SwissBit will sowas Online Anbieten (kostenfrei) ....

Ich will aber das machen, was man machen kann, damit man mit dem Thema durch ist und unsere TSE's endlich ausliefern kann und wieder Dinge Programmieren , die Spass machen, statt so ein "Sch..ss"

jaenicke 6. Feb 2020 15:21

AW: Swissbit DLL - Diverse Fragen
 
Zitat:

Zitat von arnof (Beitrag 1456828)
Die Aussage bzw das Zitat ist nicht von mir ;-) Die kommt von ismirschlecht ;-)

Da hattest du die Zitat-Tags vergessen, darum landete es dann als Zitat von dir in dem Post. ;-) Ist korrigiert.

noisy_master 14. Feb 2020 09:12

AW: Swissbit DLL - Diverse Fragen
 
Hallo Gemeinde,

ich war gestern mit einem befreundeten Gastronom unterwegs und wir haben ein wenig über Bonpflicht etc philosophiert. Dabei kam ich auf ein interessantes Thema, weil der Gute auch Nachtbedienung von 23.00 bis 5.00 morgens macht:
Man muss ja in der Swissbit TSE regelmäßig die Zeit setzen(spätestens alle 25 Minuten) und die gesetzte Zeit muss ja monoton zunehmend sein.

Wenn aber nun bei der Zeitumstellung von Sommerzeit auf Winterzeit in der Stunde, "die es nicht gibt" die Uhr der TSE gesetzt wird hat man meiner Meinung nach mit den 25 Minuten 2* den Fall dass die Uhr der TSE zurückgestellt werden müsste.
Sehe ich das richtig, oder habe ich da einen Knoten im Hirn????
Wenn das aber tatsächlich so ist: wie soll das dann gehen?

Gruß
Dirk

Daniel 14. Feb 2020 09:30

AW: Swissbit DLL - Diverse Fragen
 
Du gibst die Zeit als Unix-Timestamp, Format UTC, an. Dann ist es egal, ob Du Sommer- oder Winterzeit hast und Du kannst mit der Kasse (samt TSE) sogar um den halben Globus reisen.

jaenicke 14. Feb 2020 10:10

AW: Swissbit DLL - Diverse Fragen
 
Zitat:

Zitat von noisy_master (Beitrag 1457465)
Wenn das aber tatsächlich so ist: wie soll das dann gehen?

Nirgends steht, dass man die Zeit mit Sommer oder Winterzeit schicken muss. Eine Lösung wäre daher schon möglich?

Aber es ist in der Tat eine interessante Frage. Wer weiß, ob da schon jemand dran gedacht hat? Wie wäre es das einmal die Hersteller der TSEs zu fragen?

DeddyH 14. Feb 2020 10:25

AW: Swissbit DLL - Diverse Fragen
 
Nach meiner bisherigen Erfahrung wird die Uhrzeit im ISO8601-Format angegeben, das ist entweder direkt UTC oder lokale Zeit mit Angabe des Offsets zu UTC.


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:29 Uhr.
Seite 1 von 2  1 2      

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