#include "FS.h"
#include <LittleFS.h>
#include <ArduinoJson.h>
const char _Menu_Start[] PROGMEM = R"=====([Network]
ModulMac1=01:23:45:67:89:AB
ModulIPNa=192.168.31.1
ModulMask=255.255.255.0
ModulGetw=192.168.31.2
[ApMode]
WifiMode=0
NetwSsid=Densi_Display
NetwPasw=
NetwIpNa=10.10.101.254
NetwMask=255.255.255.0
[Ssid]
www_username=admin
www_password=admin
SSIDName=Xiaomi_Pasam
SSIDPasw=aabbccddf2
SSIDStat=0
SSIDTcpi=10.10.100.3
SSIDMask=255.255.255.0
SSIDGetw=10.10.100.254
ServerOn=0
ServerIp=10.10.100.254
ServerPo=8899
[Parametre]
Size=9
Location=0
WeightStart=1
WeightStop=8
TareStart=0
TareStop=0
UnitStart=0
EndChar=61
TextMode=Yes
[Scale]
ScaleCalibScale=0.500
ScaleCaliFactor=-2054278.00
ScaleCalibCount=0
ScaleCalibSpade=2
ScaleDecimalPoi=3
ScaleCalibCapas=30.00
ScaleCalibIncre=2
ScaleCalibSpane=1.00
ScaleCalibSensi=1
ScaleDeviceIdNo=0
ScaleDeviceTare=0
ScaleDeviceBrim=kg
ScaleDeviceWMod=2
[Modul]
Comport1=1
Comport2=1
BaudeRate1=115200
BaudeRate2=115200
TimerGstr=5
nrfSetChn=107
nrfSetAdr=1
ModulStId=MjQ4MjkzMQ==
[PluLabel]
FisNo=1
PluNo=1
LabelNo=1
LabelFis=0
)=====";
const char _Plu[] PROGMEM = R"=====(00001~12 AY UV Tas ~001~000001100011~istanbul ~00100~00000011~00000175~01~01~1200~12 AY UV (UV+EVA+AB) ~1111 ~1111 ~1111 ~1111 ~1111 ~1111 ~1111 ~1111 ~1111 ~0~0000000000~0000000000~uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu0~
00002~24 AY UV UTU ~002~000002200022~Ankara ~00200~00002200~00000275~02~01~2200~24 AY UV (UV+EVA+AB) ~222 ~222 ~222 ~222 ~222 ~222 ~222 ~222 ~222 ~0~0000000000~0000000000~uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu0~
00003~36 AYAKKABI ~003~000003300033~iZMiR ~00300~00003300~00000375~03~02~2300~36 AY UV (UV+EVA+AB) ~3333 ~3333 ~3333 ~3333 ~3333 ~3333 ~3333 ~3333 ~3333 ~0~0000000000~0000000000~uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu0~
00004~40 AY UV Lanva ~004~000004400044~Malatya ~00400~00004400~00000475~04~04~4400~60 AY UV (UV+EVA+AB) ~444 ~444 ~444 ~444 ~444 ~444 ~444 ~444 ~444 ~0~0000000000~0000000000~uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu0~
00005~52 AYNA Dolabi ~005~000005500055~Adiyaman ~00500~00005500~00000575~05~05~5500~12 AY UV + IR (UV+IR+EVA+AB) ~555 ~555 ~555 ~555 ~555 ~555 ~555 ~555 ~555 ~0~0000000000~0000000000~uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu0~
00006~64 AYNA ~006~000006600066~Hatay ~00060~00006600~00000675~01~06~6600~24 AY UV + IR (UV+IR+EVA+AB) ~1666 ~1666 ~1666 ~1666 ~1666 ~1666 ~1666 ~1666 ~1666 ~0~0000000000~0000000000~uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu0~
00007~76 AYVA ~007~000007700077~Sivas ~00700~00007700~00000775~01~03~0000~36 AY UV + IR (UV+IR+EVA+AB) ~7777 ~7777 ~7777 ~7777 ~7777 ~7777 ~7777 ~7777 ~7777 ~0~0000000000~0000000000~uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu0~
00008~80 AY Cekirdegi ~008~000008800088~Bursa ~00800~00008800~00000875~02~07~7700~60 AY UV + IR (UV+IR+EVA+AB) ~8888 ~8888 ~8888 ~8888 ~8888 ~8888 ~8888 ~8888 ~8888 ~0~0000000000~0000000000~uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu0~
00009~9PLAS LUKS ~009~000009900099~Japonya ~00090~00009900~00000975~03~03~0050~APLAS LUKS (UV+IR+EVA+AB+SPM) ~9999 ~9999 ~9999 ~9999 ~9999 ~9999 ~9999 ~9999 ~9999 ~0~0000000000~0000000000~uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu0~
00010~10SOLARIZASYON ~010~000000010100~ ~10000~00000000~00000000~00~04~0000~SOLARIZASYON ~100 ~100 ~100 ~100 ~100 ~100 ~100 ~100 ~100 ~0~0000000000~0000000000~uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu0~
)=====";
/* You only need to format LittleFS the first time you run a
test or else use the LITTLEFS plugin to create a partition
https://github.com/lorol/arduino-esp32littlefs-plugin
If you test two partitions, you need to use a custom
partition.csv file, see in the sketch folder */
#define FORMAT_LITTLEFS_IF_FAILED true
void listDir(fs::FS &fs, const char * dirname, uint8_t levels) {
Serial.printf("Listing directory: %s\r\n", dirname);
File root = fs.open(dirname);
if (!root) {
Serial.println("- failed to open directory");
return;
}
if (!root.isDirectory()) {
Serial.println(" - not a directory");
return;
}
File file = root.openNextFile();
while (file) {
if (file.isDirectory()) {
Serial.print(" DIR : ");
Serial.println(file.name());
if (levels) {
listDir(fs, file.path(), levels - 1);
}
} else {
Serial.print(" FILE: ");
Serial.print(file.name());
Serial.print("\tSIZE: ");
Serial.println(file.size());
}
file = root.openNextFile();
}
}
File file;
void readFile(fs::FS &fs, const char * path) {
Serial.printf("\nReading file: %s\r\n", path);
file = fs.open(path);
if (!file || file.isDirectory()) {
Serial.println("- failed to open file for reading");
return;
}
return;
Serial.println("- read from file:");
while (file.available()) {
Serial.write(file.read());
}
//file.close();
}
void writeFile(fs::FS &fs, const char * path, const char * message) {
Serial.printf("\nWriting file: %s\r\n", path);
File file = fs.open(path, FILE_WRITE);
if (!file) {
Serial.println("- failed to open file for writing");
return;
}
if (file.print(message)) {
Serial.println("- file written");
} else {
Serial.println("- write failed");
}
file.close();
}
void appendFile(fs::FS &fs, const char * path, const char * message) {
Serial.printf("\nAppending to file: %s\r\n", path);
File file = fs.open(path, FILE_APPEND);
if (!file) {
Serial.println("- failed to open file for appending");
return;
}
if (file.print(message)) {
Serial.println("- message appended");
} else {
Serial.println("- append failed");
}
file.close();
}
void serializeData() {
// allocate the memory for the document
StaticJsonDocument<256> data;
//sprintf(body,"[{\"id\":\"%s\",\"sb\":\"%s\",\"sc\":%d,\"oa\":%d,\"ob\":%d,\"oc\":%u,\"od\":%d,\"oe\":%d,\"of\":%d,\"og\":%d,\"oh\":%u,\"oi\":%u,\"oj\":%u,\"ok\":%u,\"ol\":%d,\"om\":%d,\"on\":%d,\"oo\":%d,\"op\":%d,\"oq\":%d,\"or\":%d,\"os\":%d,\"ot\":%d,\"ou\":%d,\"pa\":\"%s\",\"ax\":%d,\"ay\":%d,\"az\":%d,\"am\":%d,\"at\":%d,\"ga\":%0.6f,\"gb\":%0.6f,\"gc\":%d,\"gd\":%d,\"ge\":%d,\"gf\":%d,\"ha\":%d,\"hb\":%d,\"hc\":%d,\"hd\":%d,\"e1\":\"%s\",\"e2\":%d,\"e3\":%d,\"result\":\"%s\"}]",
// imei,sim_iccid_arr,int(gsmRssi),int(fuelStatus),int(engineload*100),int(coolantTemp),int(sf1*100),int(lf1*100),int(sf2*100),int(lf2*100),gasPressure,manifold_press,rpm,vehicle_speed,int(timing_adv),int(intakeTemp),maf,int(throttle*100),int(fuelT),int(hybridBattRem),int(odometer),int(hybrid_Bvolt),int(fuel_percentage*100),int(veh_bat*100),vin_arr,int(angleX*100),int(angleY*100),int(angleZ*100),int(mag*100),int(tempT*100),GPSlatitude,GPSlongitude,int(GPSspeed*10),int(GPSaltitude*10),int(accuracy*10),int(usat),int(carTrip),int(device_plug),int(device_volt*100),int(vMCheck1),cantype,int(ver),int(otaError),rxResult);
// add some values
data["id"] = "123456789";
data["sb"] = "test string";
data["sc"] = 123456789;
data["oa"] = 111111111;
data["ob"] = 222222222;
// .......
StaticJsonDocument<256> doc;
// create an empty array
JsonArray array = doc.to<JsonArray>();
// Add data
array.add(data);
File file = LittleFS.open("/myData.json", FILE_WRITE);
if (!file) {
Serial.println("- failed to open file for writing");
return;
}
// serialize the array and send the result to Serial
serializeJsonPretty(doc, Serial);
// serialize the array and save to file
serializeJson(doc, file);
file.close();
}
void FileReadSeek(char* filename){
readFile(LittleFS, filename);
String str ="";
/*
file.seek((642 * 4) + 0 ,SeekSet);
//file.seek(4000 , SeekEnd);
str = file.readStringUntil('\n');
Serial.print("Satır Okuma :");
Serial.println(str);
Serial.print("Urun Adı :");
Serial.println((str.substring(6,22)));
*/
int i =0;
while (file.available()) {
file.seek((642 * i) ,SeekSet);
str = file.readStringUntil('\n');
Serial.printf("PLU Name %d: %s - %s\n" ,i ,(str.substring(6,22).c_str()),(str.substring(27,39).c_str()) );
//Serial.printf("PLU Code %d: %s\n" ,i ,(str.substring(27,39).c_str()));
i++;
}
//Serial.print("file Pozisyon :");
//Serial.println(file.position());
}
void setup() {
Serial.begin(115200);
if (!LittleFS.begin(FORMAT_LITTLEFS_IF_FAILED)) {
Serial.println("LittleFS Mount Failed");
return;
}
//listDir(LittleFS, "/", 0);
//writeFile(LittleFS, "/hello2.txt", "Hello2");
//writeFile(LittleFS, "/System.txt", _Menu_Start);
writeFile(LittleFS, "/Plu.txt", _Plu);
//listDir(LittleFS, "/", 0);
// writeFile(LittleFS, "/hello.txt", "Hello ");
// appendFile(LittleFS, "/hello.txt", "World!\r\n");
//readFile(LittleFS, "/Plu.txt");
//readFile(LittleFS, "/System.txt");
FileReadSeek("/Plu.txt");
// listDir(LittleFS, "/", 0);
// serializeData();
//readFile(LittleFS, "/myData.json");
}
void loop() {
}