' WLAN RS485 Device Server ' (c) Avisaro AG 18.03.2010 ' Version 2 inmode -3 outmode -2 ' ------------------------------- ' 2. serial port auxopen -4, 9600, asc("N"), 1, 8, asc("N") ' ------------------------------- let red = -202 let green = -203 let inkey = -204 put green, #1 let in = 0 exec "prompt" sleep 100 exec "sched 0" sleep 100 let n = 0 ' Reset to default-Values ? get inkey, in if (in = 0) then for n = 0 to 100 get inkey, in if (in = 1) then goto STARTING end if put red, #1 put green, #1 sleep 10 put red, #0 put green, #0 sleep 10 next n exec "restart clear" sleep 100 put red, #1 put green, #1 do sleep 1 loop end if STARTING: sleep 400 DIM A(100) DIM B(100) let n = 0 let t = TIME let f = 60 let m = 0 let u = 0 let y = 0 let t$ = "" REM INIT WEB let x$ = "Connect to (IP, =0 for listen):" put -100, x$, len(x$) let x$ = "Connect to / Listen (Port):" put -102, x$, len(x$) let x$ = "Status (WR41-2):" put -104, x$, len(x$) load 0, t$ put -101, t$, len(t$) load 25, u if (-1 = u) then let u = 23 save 25, u let t$ = str$(0) save 0, t$ end if let x$ = str$(u) put -103, x$, len(x$) ' set port direction for RS422 ' port 1 output put -207, #1 ' port 2 input put -212, #0 TRY_CONNECT: ' Empty buffer get -3, A get -4, A ' Set website (2x3 field) if (t$ = str$(0)) then let x$ = "listening" else let x$ = "try to connect" end if gosub load_web let y = status(101) if (y = 0) then if (t$ = str$(0)) then listen 101, u, 10 else let y = RESOLV (t$) sleep 500 connect 101, y, u, 10 end if end if if y = 9 then let x$ = "Connected (Web locked)" gosub load_web put red, #1 goto MAIN end if put green, #0 sleep 100 put green, #1 sleep 500 goto TRY_CONNECT MAIN: 'clear port input A put red, #1 'sleep 100 'Data Out on RS422 get 101, A if (BYTESREAD > 0) then put -3, A, BYTESREAD end if ' Data In on RS422 get -4, A if (BYTESREAD > 0) then REP_PUT_WLAN: put 101, A, BYTESREAD if lasterr <> 0 then sleep 1 goto REP_PUT_WLAN end if end if get inkey, in if (in = 0) then close 101 put red, #0 gosub load_web goto TRY_CONNECT end if let y = status(101) if (y <> 9) then close 101 put red, #0 goto TRY_CONNECT end if goto MAIN: load_web: put -105, x$, len(x$) REM Änderung auf Webseite ? get -103, x$ if val(x$) <> u then let u = val(x$) save 25, u close 101 end if get -101, x$ if t$ <> x$ then let t$ = x$ save 0, t$ close 101 end if return '+++ 'a+v+i+s