'nomainwin 'print httpget$("http://libertybasic.com") [top] dim info$(10, 10) dim SettingsList$(7) dim SettingsListValues$(7) SettingsList$(1) = "Com Port number" SettingsList$(2) = "Baud Speed" SettingsList$(3) = "printer Name" SettingsList$(4) = "Material" SettingsList$(5) = "Color" SettingsList$(6) = "Server" SettingsList$(7) = "Pause After Print" if fileExists(DefaultDir$, "Settings.txt") then open "Settings.txt" for input as #PrinterSettings line input #PrinterSettings, printerComPort$ line input #PrinterSettings, printerBaud$ line input #PrinterSettings, printerNamea$ line input #PrinterSettings, printerMaterial$ line input #PrinterSettings, printerColor$ line input #PrinterSettings, printerServer$ line input #PrinterSettings, printerPauseAfterJob$ close #PrinterSettings else goto [MySettings.Window] end if printerComPort$ = trim$(printerComPort$) printerBaud$ = trim$(printerBaud$) printerNamea$ = trim$(printerNamea$) printerMaterial$ = trim$(printerMaterial$) printerColor$ = trim$(printerColor$) printerServer$ = trim$(printerServer$) printerPauseAfterJob$ = trim$(printerPauseAfterJob$) oncomerror [trap] on error goto [errorHandler] [setup.esp8266.Window] '-----Begin code for #esp8266 WindowWidth = 900 WindowHeight = 650 UpperLeftX=int((DisplayWidth-WindowWidth)/2) UpperLeftY=int((DisplayHeight-WindowHeight)/2) GRAPHICBOX #esp8266.indi, 255, 10, 25, 45 textbox #esp8266.terminalsend, 255 + 25, 10, WindowWidth - 255 - 20-150 -25, 45 button #esp8266.connect,"Send",[terminal.send], ul, WindowWidth -20-75, 10 , 75, 25 button #esp8266.connect,"connect",[terminal.connect], ul, 10, 10 , 200, 95 button #esp8266.LoadGcode,"Pause Print",[Pause.print], ul, 10, 110 , 200, 95 button #esp8266.LoadGcode,"Send Gcode",[send.gcode], ul, 10, 210 , 200, 95 button #esp8266.settings,"Settings",[MySettings.Window], ul, 10, 310 , 200, 95 texteditor #esp8266.te, 255, 60, WindowWidth - 255 - 20, WindowHeight - 50 - 35 -65 'The handle for our texteditor is #window.te open "ESP8266 Basic by ESP8266basic.com" for window as #esp8266 print #esp8266, "font courier_new 16" print #esp8266, "trapclose [quit.esp8266]" print #esp8266.te, "!autoresize"; 'Tell the texteditor to resize with the terminal window print #esp8266.indi , "fill red" goto [terminal.connect] wait print shell$("wget -O download.gcode ";printerServer$;"?name=";printerNamea$;"&";"?material=";printerMaterial$;"&";"?Color=";printerColor$) [quit.esp8266] 'End the program close #esp8266 end [Pause.print] if printPaused = 0 then printPaused = 1 else printPaused = 0 goto [loop.for.Gcode] [send.gcode] print #esp8266.te, "!lines GcodeLinecount" ; n = 0 SendGcodeFlag = 1 wait [terminal.connect] oncomerror [trap2] if connected = 1 then timer 0 print #esp8266.indi , "fill red" close #comm connected = 0 else open "COM" ; printerComPort$ ; ":" ;printerBaud$; ",n,8,1" for random as #comm connected = 1 print #esp8266.indi , "fill green" timer 30000, [loop.for.Gcode] goto [loop.for.Gcode] end if wait [terminal.send] if connected <> 1 then notice "Not connected" : wait print #esp8266.terminalsend, "!contents? text$;" text$ = text$ + chr$(13) print #comm, text$ wait [loop.for.Gcode] timer 0 if SendGcodeFlag = 1 then goto [loop] print shell$("wget -O download.gcode ";chr$(34);printerServer$;"?name=";printerNamea$;"&Color=";printerColor$;"&material=";printerMaterial$;chr$(34)) open "download.gcode" for input as #autoexec print #esp8266.te, "!contents #autoexec"; close #autoexec print #esp8266.te, "!line 1 gcodetest$" ; if gcodetest$ = ";start" then print #esp8266.te, "!lines GcodeLinecount" ; n = 0 SendGcodeFlag = 1 timer 0 goto [loop] end if timer 30000, [loop.for.Gcode] wait [loop] timer 0 if lof(#comm) <> 0 then t$ = t$ + input$(#comm, lof(#comm)) if right$(t$,1) = chr$(10) then t$ = upper$(trim$(t$)) print t$ if printPaused = 0 then if SendGcodeFlag = 1 then if t$ = "WAIT" then gosub [send.the.goce.to.the.printer] if t$ = "OK 0" then gosub [send.the.goce.to.the.printer] if t$ = "OK" then gosub [send.the.goce.to.the.printer] if t$ = "RESEND:1" then gosub [REsend.the.goce.to.the.printer] else print #esp8266.te, "!line 3 PrintJobID$" ; PrintJobID$ = right$(PrintJobID$,len(PrintJobID$)-1) print shell$("wget -O download.junk ";chr$(34);printerServer$;"?jobID=";PrintJobID$;"&stat=Done";chr$(34)) SendGcodeFlag = 0 'notice "Printing done. Click ok to continue" goto [loop.for.Gcode] end if end if t$ = "" end if end if timer 10, [loop] wait [REsend.the.goce.to.the.printer] n = n - 1 [send.the.goce.to.the.printer] n = n + 1 if n > GcodeLinecount then SendGcodeFlag = 0: RETURN print #esp8266.te, "!line "+str$(n)+" GcodeLineToSend$" ; if left$(GcodeLineToSend$,10) = ";printpage" then bla = pauseme( 10 ) 'a Bit of code to print out a page to the default printer for xxxxxx = 1 to 10 print #esp8266.te, "!line ";xxxxxx;" gcodetest$" ; lprint gcodetest$ next xxxxxx dump bla = pauseme( 30000 ) end if if left$(GcodeLineToSend$,1) = ";" then goto [send.the.goce.to.the.printer] if left$(GcodeLineToSend$,1) = "" then goto [send.the.goce.to.the.printer] print #esp8266.te, "!origin 0 ";n ; print #comm, GcodeLineToSend$ + chr$(13) return [trap2] [trap] [errorHandler] timer 0 print #esp8266.indi , "fill red" close #comm connected = 0 notice "there was an error" print "Error string is " + chr$(34) + Err$ + chr$(34) print "Error number is ";Err wait [MySettings.Window] SettingsListValues$(1) = printerComPort$ SettingsListValues$(2) = printerBaud$ SettingsListValues$(3) = printerNamea$ SettingsListValues$(4) = printerMaterial$ SettingsListValues$(5) = printerColor$ SettingsListValues$(6) = printerServer$ SettingsListValues$(7) = printerPauseAfterJob$ for x = 1 to 7 if SettingsListValues$(x) = "" then SettingsListValues$(x) = "unset" next x 'include SettingsDialog.inc print #MySettings, "trapclose [mysettings.cancel]" wait [Setting.Select.edit] print #MySettings.SettingsListValues, "selectionindex? index" goto [settings.edit.index.value] [Setting.Select] print #MySettings.Selection, "selectionindex? index" goto [settings.edit.index.value] [settings.edit.index.value] if index = 0 then wait newSettingValue$ = SettingsListValues$(index) prompt "Enter New Value";newSettingValue$ if newSettingValue$ = "" then wait SettingsListValues$(index) = newSettingValue$ print #MySettings.SettingsListValues, "reload" wait [mysettings.save] open "Settings.txt" for output as #PrinterSettings for x = 1 to 7 print #PrinterSettings, SettingsListValues$(x) next x close #PrinterSettings close #MySettings WAIT [mysettings.cancel] close #MySettings WAIT '-------------------------Functions --------------------------------------------------------- function wget$(page.to.get$) wget$ = shell$("wget ";chr$(34);page.to.get$;chr$(34);" -q -0 -") end function function shell$(command$) open "msvcrt" for dll as #msvcrt command$ = command$ + " > %temp%\lbbcmd.out" calldll #msvcrt, "system", command$ as ptr, r as long close #msvcrt tmp$ = space$(260) calldll #kernel32, "GetTempPathA", 260 as long, tmp$ as ptr, r as long open left$(tmp$,r) + "lbbcmd.out" for input as #tmp shell$ = input$(#tmp, lof(#tmp)) close #tmp end function function pauseme( mil) t0=time$("ms") while time$("ms")<t0+mil scan wend end function function ReplaceString$(ere$,repl$,in$,occ$,pos) ' Function to replace expressions in strings ' ' Usage: ' ' ReplaceString$({expression},{replacement},{string},{occurrances},{startposition}) ' ' expression ...... string to be replaced ' replacement ..... substitute for expression ' string .......... string to be parsed ' occurrences ..... ALL -> replaces all occurrences ' else the specified number ' startposition ... position to start substitution ' ' returns altered string ReplaceString$ = in$ if upper$(occ$) = "ALL" then number = len(in$) else number = val(occ$) end if if pos < 0 then pos = 0 while instr(ReplaceString$,ere$,pos) > 0 pos = instr(ReplaceString$,ere$,pos) ReplaceString$ = left$(ReplaceString$,pos - 1) + repl$ + mid$(ReplaceString$,pos + len(ere$)) if upper$(occ$) = "ALL" and number > 1 then pos = pos + len(repl$) number = number - 1 else pos = len(ReplaceString$) end if wend end function function fileExists(path$, filename$) 'dimension the array info$( at the beginning of your program files path$, filename$, info$() fileExists = val(info$(0, 0)) 'non zero is true end function
|