Template for Ticket to be printed Max Length 500bytes Can be concatenated unless they contain a cut important for the document-numer 1...99 is the : "title":"DC2C_pri02", <---- not the file name Never finish file with a TEXT-Line (set a "nl" after it)!!! -> TEXT without nl at the end will not be printed but with next doc nonsens will be printed [0:0...] Following keys are used: text // drucke Text direkt styl // wie soll der Text aussehen feed // Papier bewegen vari // Werte aus Speicher drucken graf // drucke Log, QRcode oder Barcode, rufe Funktionen und stelle Werte bereit Following value pairs are allowed: // print a direct textline, max 64bytes, always without "NewLine" "text":"Parking Ticket", // select text style bold on/off, underlined on/off or italic on/off // once switched on it's active until next off or end of document // not used for appended docs "styl":"bold on", "styl":"under off", "styl":"latin on", "styl":"font 12", // select Font-type for the following print, / range: 1...99 "styl":"size 01", // select Font size for the following print // range: 1...99, depends on font-type, selects hight and width // 10th:height 1th=width "styl":"align c" // 'l' 'c' 'r' // left center right "styl":"density25"; // 0....[25]...50 0=blass // move or cut paper: "feed":"cut", "feed":"part", "feed":"eject", // 5 line forward and cut "feed":"line3", // 3 line forward (1..9) "feed":"back1", // 1 line back (1..9) "feed":"BM", // Blackmark "feed":"nl", // NewLine LF & CR (1..9) "feed":"margin05", // left border in mm "feed":"rim05", // right border in mm "feed":"speed10", // printer speed *10mm/s // print predefined grafical components like logos, barcodes or QR-Codes "graf":"barc8", // kind and content is fixed programmed, 1..9 "graf":"logo2", // programmed in printer, 1...9 "graf":"q.r.1", // content is fixed programmed 1..9 // print machine parameters "vari":"cunu", "vari":"manu", "vari":"location", "vari":"group", "vari":"zone", "vari":"alias", // print current date or time // ge=german style 15:45 / 31.12.23 // us=us format 3:45PM / 23/12/31 // time long: 14:45:58 // time short: 14:45 // dow short: Mo // dow long: Monday "vari":"date ge", "vari":"date us", "vari":"time long", "vari":"wday eng short", //"wday eng long" "wday deu short" "wday deu long" #print dynamic values, come per cmd 17 from Master right before printing #command contains 8 strings (1..8) with 8bytes each #will be printed as they are "vari","Dynamic02"; // following varis not yet installed: // Values from current transaction, to come dynamic from master "vari":"Amount_bru", // = inserted "vari":"Amount_net", // = netto "vari":"percent", // tax rate in percent "vari":"perc_am", // amount of tax "vari":"PE dow__short", short/long "vari":"PE date us", ge/us "vari":"PE time long", short/long "vari":"TickCtr" // print consecutive ticket counter "vari":"overpaid", "vari":"LicPl", // License Plate Example: "styl":"size 1", "feed":"NL" "text":"parking until:", "styl":"size 3", "feed":"NL" "vari":"parkend date", "feed":"NL" "vari":"parkend time", "styl":"size 1", "text":"printed at ", "vari":"current date", "feed":"NL" "vari":"current time", "feed":"NL" "text":"payed amount: ", "vari":"amount", "feed":"NL" "text":"--------------", "feed":"NL" Umsetzung im Programm bzw Speicherung im Eeprom: Text: einfach rein, alles andere als ESC-Sequenz mit acht bytes (fünf + reserve) speichern STYL: ruft eine Druckerfunktion auf <27><48><32><32><32><32> (Escape, s für style, b für bold (oder u,l,f,s) und asc-zahl, hier bold off <27><48><50><32><32><32> Font 2 FEED: ruft eine Druckerfunktion auf <27><32><32><32><32><32> f für feed, und c für cut (oder p,e,l,b,B,n) VARI: sucht entspr. Daten, formt sie im string und schickt sie als Text zum Drucker <27><0x35><0x38><32><32><32><32> v für Vari dann zwei Ziffern Variablen werden durchnummeriert von 10..99 Länge: Json Datei max 500byte, dh. sie enthält max400byte text Jeder Textspeicher hat 512 Byte, aber Esc-Sequ braucht 8 byte! Wenn also viele Varis drin sind wirds knapp, aber dann ist die Json ja auch zur Hälfte mit keys gefüllt. Also besser 1k pro Doc vorsehen, Rest immer mit bin-0 gefüllt --->32kB gesamt Dann bleiben noch 32 kB übrig: Abr.-Datensatz je256byte, also Platz für 128DS Noch 64kB Reserve, evtl von Master zu verwenden (alle settings liegen im int. eeprom)