// written by Thomas Sax, Jan.2022 #include #include "datei.h" // ------------------------------------------------------------------------------------------------- // ------------------------------------------------------ create csv file ------------------------------- // ------------------------------------------------------------------------------------------------- QByteArray datei_writeArray, datei_tempArray; void csv_startCreatingFile(void) { datei_writeArray.clear(); datei_tempArray.clear(); } void csv_addTextToFile(QString myText) { datei_writeArray.append(myText.toLatin1()); datei_writeArray.append(FILESEPERATOR); } void csv_addIntToFile(int myValue) { //qulonglong ullt=12345678901234567890; // max 1,844 x10^19 datei_tempArray.setNum(myValue,10); // accepted types: short, ushort, int, uint, // qlonglong, qulonglong, float, double // numerbase can be 2...36(!),10=dec datei_writeArray.append(datei_tempArray); datei_writeArray.append(FILESEPERATOR); } void csv_addUintToFile(uint myValue) { datei_tempArray.setNum(myValue,10); datei_writeArray.append(datei_tempArray); datei_writeArray.append(FILESEPERATOR); } void csv_addLongvalToFile(qlonglong myValue) { datei_tempArray.setNum(myValue,10); datei_writeArray.append(datei_tempArray); datei_writeArray.append(FILESEPERATOR); } void csv_addUlongvalToFile(qulonglong myValue) { datei_tempArray.setNum(myValue,10); datei_writeArray.append(datei_tempArray); datei_writeArray.append(FILESEPERATOR); } /* void csv_addCurrentTimeToFile(void) { uint8_t hour, minute, sec, ui8buf[20]; char buf[20]; config_getSysTime(&hour, &minute, &sec); GetTimeString(hour, minute, sec, 0, 1, ui8buf); for (uint8_t nn=0; nn<20; nn++) buf[nn]=char(ui8buf[nn]); datei_writeArray.append(buf,8); // time string datei_writeArray.append(FILESEPERATOR); } void csv_addCurrentDateToFile(void) { uint16_t year; uint8_t month, day, ui8buf[20]; char buf[20]; config_getSystemDate(&year, &month, &day); //qDebug()<<"date year: "<1) filSize=uint32_t(filLen); else return 0; // 1) find position of seperators for (uint32_t ii=0; iiMAXNUMBEROFSEQUENCES) return ""; // 1) find position of seperators for (ii=0; ii0) { start=sepPos[sequNr-1]+1; ende=sepPos[sequNr]; } //qDebug()<<"datei getOneFileSequence start/ende: "<=ende) return ""; //return "-err3-"; sequence.clear(); //batmp.clear(); pp=0; for (ii=start; ii=int(filSize)) mm=0; oneByt=sourceFile.at(mm); sequence.append(oneByt); } return sequence; } int csv_getEntryAsInt(QByteArray sourceFile, uint32_t sequNr) { QByteArray myBA, myVA; int entry=0; bool ok; myVA.clear(); myBA = csv_getOneFileSequence(sourceFile, sequNr); //qDebug()<<"datei getEntryAsInt, sequence: " << myBA; entry=myBA.toInt(&ok,16); if (ok) { //qDebug()<<"datei getEntryAsInt, number: " << entry; return entry; } //qDebug()<<"datei getEntryAsInt, error " << myBA; return 0; } int32_t csv_getEntryAsLong(QByteArray sourceFile, uint32_t sequNr) { QByteArray myBA = csv_getOneFileSequence(sourceFile, sequNr); long entry=0; bool ok; entry=myBA.toLong(&ok,10); if (ok) return entry; return 0; } uint8_t csv_getEntryAsUshort(QByteArray sourceFile, uint32_t sequNr) { QByteArray myBA = csv_getOneFileSequence(sourceFile, sequNr); uint8_t entry=0; bool ok; entry=uint8_t(myBA.toUShort(&ok,10)); if (ok) return entry; return 0; } uint16_t csv_getEntryAsUint(QByteArray sourceFile, uint32_t sequNr) { QByteArray myBA = csv_getOneFileSequence(sourceFile, sequNr); uint16_t entry=0; bool ok; entry=uint16_t(myBA.toUInt(&ok,10)); if (ok) return entry; return 0; } uint32_t csv_getEntryAsUlong(QByteArray sourceFile, uint32_t sequNr) { QByteArray myBA = csv_getOneFileSequence(sourceFile, sequNr); uint32_t entry=0; bool ok; entry=myBA.toULong(&ok,10); if (ok) return entry; return 0; } uint64_t csv_getEntryAs2Ulong(QByteArray sourceFile, uint32_t sequNr) { QByteArray myBA = csv_getOneFileSequence(sourceFile, sequNr); uint64_t entry=0; bool ok; entry=myBA.toULongLong(&ok,10); if (ok) return entry; return 0; } QString csv_getEntryAsString(QByteArray sourceFile, uint32_t sequNr) { QByteArray myBA = csv_getOneFileSequence(sourceFile, sequNr); QString entry; //qDebug()<<"datei getEntryAsString, sequence: " << myBA; entry=myBA.toStdString().c_str(); return entry; } // ------------------------------------------------------------------------------------------------- // ------------------------------------------------------ create Json file ------------------------------- // ------------------------------------------------------------------------------------------------- /* example QString str = "{" " \"Herausgeber\": \"Xema\"," " \"Nummer\": \"1234-5678-9012-3456\"," " \"Deckung\": 2e+6," " \"Währung\": \"EURO\"," " \"Inhaber\": {" " \"Name\": \"Mustermann\"," " \"Vorname\": \"Max\"," " \"männlich\": true," " \"Hobbys\": [ \"Reiten\", \"Golfen\", \"Lesen\" ]," " \"Alter\": 42," " \"Kinder\": []," " \"Partner\": null" " }" "}"; */ QString myJsonCon; QString tmpStr; void json_startRecord(void) { myJsonCon.clear(); tmpStr.clear(); myJsonCon.append('{'); } void json_enterIntToRecord(QString attribute, ulong i_value) { tmpStr.clear(); myJsonCon.append('"'); myJsonCon.append(attribute); myJsonCon.append('"'); myJsonCon.append(':'); tmpStr.setNum(i_value); myJsonCon.append(tmpStr); myJsonCon.append(','); myJsonCon.append(NEWLINEINFILE); } void json_enterTextToRecord(QString attribute, QString txt_value) { myJsonCon.append('"'); myJsonCon.append(attribute); myJsonCon.append('"'); myJsonCon.append(':'); myJsonCon.append('"'); myJsonCon.append(txt_value); myJsonCon.append('"'); myJsonCon.append(','); myJsonCon.append(NEWLINEINFILE); } /* void json_addCurrentTimeToRecord(QString attribute) { uint8_t hour, minute, sec, ui8buf[20]; //char buf[20]; myJsonCon.append('"'); myJsonCon.append(attribute); myJsonCon.append('"'); myJsonCon.append(':'); myJsonCon.append('"'); datei_getSysTime(&hour, &minute, &sec); GetTimeString(hour, minute, sec, 0, 1, ui8buf); for (uint8_t nn=0; nn<8; nn++) myJsonCon.append(ui8buf[nn]); myJsonCon.append('"'); myJsonCon.append(','); myJsonCon.append(NEWLINEINFILE); } void json_addCurrentDateToRecord(QString attribute) { uint16_t year; uint8_t month, day, ui8buf[20]; //char buf[20]; myJsonCon.append('"'); myJsonCon.append(attribute); myJsonCon.append('"'); myJsonCon.append(':'); myJsonCon.append('"'); datei_getSystemDate(&year, &month, &day); GetDateString(day, month, 0x20, uint8_t(year%100), 0, 0, ui8buf); for (uint8_t nn=0; nn<10; nn++) myJsonCon.append(ui8buf[nn]); myJsonCon.append('"'); myJsonCon.append(','); myJsonCon.append(NEWLINEINFILE); } */ void json_enterArrayToRecord(QString attribute, uint8_t *buf, ulong nrofVals) { // add array of numbers with "nrofVals" elements myJsonCon.append('"'); myJsonCon.append(attribute); myJsonCon.append('"'); myJsonCon.append(':'); myJsonCon.append('['); // eckig!!! for (ulong ul=0; ulMAXNROFARRAYVALUES) nrOfPairs=MAXNROFARRAYVALUES; for (ii=0; iiMaxBufferSize) { ok=false; // got not all nrOfPairs=MaxBufferSize; } for (int ii=0; ii