Jump to content
The simFlight Network Forums

Recommended Posts

Posted

Hi Peter, sorry to bother you with this but I've run out of ideas!

I'm trying to write a Weather 'radar' by interrogating my private FSX database for all weather stations within a certain distance of the plane. I take the list and whizz through a loop asking the NWI for weather for each of the ICAOs. (To be be on the safe side I've put a 10ms delay between setting the ICAO/Signature and reading the weather data).

Occasionally this works but for the most part the reads return weather for the previous sucessfull ICAO. In my last test if only returned 4 weather areas from 87 ICAO codes. The list of ICAOs has been compiled from a list of airports that are also Weather Stations so I guess they should have METAR to return.

I guess my question is whether you or anyone else has stress tested the NWI before and whether they got the results they were expecting? Perhaps I'm the first to interrogate it en masse in this way and some features are bubbling up, I don't know but I'm pretty sure I'm following the 'How To...' guide in the NWI readme and I can't see why it would fail so randomly.

Any help, suggestions or pointers would be gratefully received, from you or anyone else out there!

Many thanks

Ian

ps Am enclosing source code and sample logs but am not expecting you to debug my rather messy code. Just there in case any VB programmers can spot something I've done wrong.

Start:

    Attempt = Attempt + 1

' Clear the read area
    mReadWx.Command = 0
    mReadWx.Flags = 0
    mReadWx.ICAO.Byte1 = 0
    mReadWx.ICAO.Byte2 = 0
    mReadWx.ICAO.Byte3 = 0
    mReadWx.ICAO.Byte4 = 0
    mReadWx.Dynamics = 0
    mReadWx.Spare = 0
    mReadWx.Latitude = 0
    mReadWx.Longitude = 0
    mReadWx.Elevation = 0
    mReadWx.TimeStamp = 0
    mReadWx.PressureUDT.Pressure = 0
    mReadWx.PressureUDT.Drift = 0
    mReadWx.VisUDT.LowerAlt = 0
    mReadWx.VisUDT.Range = 0
    mReadWx.VisUDT.Spare = 0
    mReadWx.VisUDT.UpperAlt = 0
    mReadWx.NumTemps = 0
    For i = 1 To 24
        mReadWx.TempUDT(i).Alt = 0
        mReadWx.TempUDT(i).Day = 0
        mReadWx.TempUDT(i).DayNightVar = 0
        mReadWx.TempUDT(i).DewPoint = 0
    Next i
    mReadWx.NuMWinds = 0
    For i = 1 To 24
        mReadWx.WindUDT(i).UpperAlt = 0
        mReadWx.WindUDT(i).Speed = 0
        mReadWx.WindUDT(i).Gust = 0
        mReadWx.WindUDT(i).Direction = 0
        mReadWx.WindUDT(i).Turbulence = 0
        mReadWx.WindUDT(i).Shear = 0
        mReadWx.WindUDT(i).Variance = 0
        mReadWx.WindUDT(i).SpeedFract = 0
        mReadWx.WindUDT(i).Spare = 0
    Next i
    mReadWx.NumClouds = 0
    For i = 1 To 24
        mReadWx.CloudUDT(i).UpperAlt = 0
        mReadWx.CloudUDT(i).LowerAlt = 0
        mReadWx.CloudUDT(i).Deviation = 0
        mReadWx.CloudUDT(i).Coverage = 0
        mReadWx.CloudUDT(i).Type = 0
        mReadWx.CloudUDT(i).Turbulence = 0
        mReadWx.CloudUDT(i).Icing = 0
        mReadWx.CloudUDT(i).PrecipBase = 0
        mReadWx.CloudUDT(i).PrecipType = 0
        mReadWx.CloudUDT(i).PrecipRate = 0
        mReadWx.CloudUDT(i).TopShape = 0
        mReadWx.CloudUDT(i).Spare = 0
    Next i

    If Attempt > 10 Then
        Print #mFilenum, "Gave up after 10 attempts for " & pICAO
        Exit Sub
    End If

' Initialise the key areas

    Randomize Timer

    ICAO.Byte1 = Asc(Mid$(UCase$(pICAO), 1, 1))
    ICAO.Byte2 = Asc(Mid$(UCase$(pICAO), 2, 1))
    ICAO.Byte3 = Asc(Mid$(UCase$(pICAO), 3, 1))
    ICAO.Byte4 = Asc(Mid$(UCase$(pICAO), 4, 1))

    mWxSig = Rnd * 9999

    GotIt = False

    Const cWxGet = &HCC00&

    Do While Not GotIt
        ' Write these ares to FSUIPC which triggers the request for data
        If FSUIPC_Write(cWxGet + 8, 4, VarPtr(ICAO), pdRC) = False Then Exit Sub
        If FSUIPC_Write(cWxGet + 4, 4, VarPtr(mWxSig), pdRC) = False Then Exit Sub
        If FSUIPC_Process(pdRC) = False Then
            Exit Sub
        End If
        ' Give FSUIPC a chance to get the data
        Sleep 10
        ' Read the data back into our data structure
        FSUIPC_Read cWxGet, Len(mReadWx), VarPtr(mReadWx), pdRC
        If FSUIPC_Process(pdRC) = False Then
            Exit Sub
        End If
        ' The the signature matches, if so exit the loop
        If mReadWx.lSignature = mWxSig Then
            GotIt = True
        End If
    Loop

    t = Chr$(mReadWx.ICAO.Byte1) & Chr$(mReadWx.ICAO.Byte2) & Chr$(mReadWx.ICAO.Byte3) & Chr$(mReadWx.ICAO.Byte4)
    If t <> pICAO Then
       Print #mFilenum, "OOPS! Req=" & pICAO & vbTab & "Recd=" & t & vbTab & "will try again..."
        GoTo Start
    End If

Aircraft Long=-2.81434060912943
Aircraft Lat =51.3600026776778

List of local weather stations
==============================
EGBB          -1.748028      52.45385 
EGBE          -1.479722      52.36972 
EGBJ          -2.167108      51.89411 
EGCC          -2.27495       53.35374 
EGDC          -4.150339      51.08717 
EGDG          -4.995408      50.44056 
EGDL          -1.993428      51.50515 
EGDM          -1.747414      51.15219 
EGDN          -1.75425       51.24718 
EGDR          -5.255711      50.08609 
EGDX          -3.43313       51.40563 
EGDY          -2.638819      51.00936 
EGFF          -3.343333      51.39667 
EGFH          -4.067778      51.60528 
EGGD          -2.719089      51.38267 
EGGP          -2.847404      53.33418 
EGGW          -0.3683335     51.87472 
EGHD          -4.105834      50.42278 
EGHE          -6.291667      49.91333 
EGHH          -1.8425        50.78 
EGHI          -1.356126      50.95057 
EGJA          -2.217425      49.70638 
EGJB          -2.601944      49.435 
EGJJ          -2.195508      49.20795 
EGKA          -0.2972223     50.83556 
EGKB           0.03249983    51.33083 
EGKK          -0.1902777     51.14806 
EGLC           0.05527767    51.50528 
EGLF          -0.7763892     51.27583 
EGLL          -0.4613887     51.4775 
EGMC           0.6955553     51.57139 
EGMD           0.9391665     50.95611 
EGMH           1.346111      51.34222 
EGNH          -3.028561      53.77156 
EGNJ          -0.3508333     53.57444 
EGNM          -1.660556      53.86583 
EGNO          -2.883061      53.7451 
EGNR          -2.977778      53.17805 
EGNX          -1.328056      52.83111 
EGOD          -4.1235        52.81167 
EGOS          -2.668042      52.79817 
EGOV          -4.535339      53.2481 
EGSC           0.1749998     52.205 
EGSH           1.282778      52.67583 
EGSS           0.235         51.885 
EGSY          -1.388486      53.39426 
EGTC          -0.6166667     52.07222 
EGTE          -3.413889      50.73444 
EGTG          -2.590833      51.51944 
EGTH          -0.2529488     51.76555 
EGTI          -0.4161975     51.69187 
EGUB          -1.095834      51.61639 
EGUL           0.5610002     52.40933 
EGUN           0.4863887     52.36195 
EGUW           0.9562638     52.12729 
EGUY          -0.1078333     52.35717 
EGVA          -1.790028      51.68217 
EGVN          -1.583617      51.74997 
EGVO          -0.942825      51.23414 
EGVP          -1.567556      51.14281 
EGWC          -2.3055        52.64 
EGWU          -0.4182307     51.553 
EGXC          -0.166014      53.09301 
EGXG          -1.1955        53.83434 
EGXH           0.7729388     52.34261 
EGXJ          -0.6488335     52.73567 
EGXN          -0.9895        52.9665 
EGXP          -0.5508332     53.3075 
EGXT          -0.4764528     52.61256 
EGXW          -0.5238108     53.16617 
EGYC           1.3579        52.75484 
EGYD          -0.4833055     53.03035 
EGYE          -0.561625      52.96223 
EGYM           0.5506915     52.64835 
EIDW          -6.27          53.42139 
EIME          -6.451333      53.30167 
LFOE           1.22          49.02861 
LFOH           0.0880555     49.53389 
LFOP           1.183889      49.39083 
LFOS           0.6558332     49.83528 
LFRC          -1.475278      49.65083 
LFRG           0.16          49.36333 
LFRK          -0.4494792     49.17229 
LFRO          -3.474445      48.755 

Results of Interrogation
========================
OOPS! Req=EGBB	Recd=EGGD	will try again...
OOPS! Req=EGBB	Recd=EGGD	will try again...
OOPS! Req=EGBB	Recd=EGGD	will try again...
OOPS! Req=EGBB	Recd=EGGD	will try again...
OOPS! Req=EGBB	Recd=EGGD	will try again...
OOPS! Req=EGBB	Recd=EGGD	will try again...
OOPS! Req=EGBB	Recd=EGGD	will try again...
OOPS! Req=EGBB	Recd=EGGD	will try again...
OOPS! Req=EGBB	Recd=EGGD	will try again...
Req=EGBB	Recd=EGBB
OOPS! Req=EGBE	Recd=EGBB	will try again...
OOPS! Req=EGBE	Recd=EGBB	will try again...
OOPS! Req=EGBE	Recd=EGBB	will try again...
OOPS! Req=EGBE	Recd=EGBB	will try again...
OOPS! Req=EGBE	Recd=EGBB	will try again...
OOPS! Req=EGBE	Recd=EGBB	will try again...
OOPS! Req=EGBE	Recd=EGBB	will try again...
OOPS! Req=EGBE	Recd=EGBB	will try again...
OOPS! Req=EGBE	Recd=EGBB	will try again...
OOPS! Req=EGBE	Recd=EGBB	will try again...
Gave up after 10 attempts for EGBE
OOPS! Req=EGBJ	Recd=EGBB	will try again...
OOPS! Req=EGBJ	Recd=EGBB	will try again...
OOPS! Req=EGBJ	Recd=EGBB	will try again...
OOPS! Req=EGBJ	Recd=EGBB	will try again...
OOPS! Req=EGBJ	Recd=EGBB	will try again...
OOPS! Req=EGBJ	Recd=EGBB	will try again...
OOPS! Req=EGBJ	Recd=EGBB	will try again...
OOPS! Req=EGBJ	Recd=EGBB	will try again...
OOPS! Req=EGBJ	Recd=EGBB	will try again...
OOPS! Req=EGBJ	Recd=EGBB	will try again...
Gave up after 10 attempts for EGBJ
OOPS! Req=EGCC	Recd=EGBB	will try again...
OOPS! Req=EGCC	Recd=EGBB	will try again...
OOPS! Req=EGCC	Recd=EGBB	will try again...
OOPS! Req=EGCC	Recd=EGBB	will try again...
OOPS! Req=EGCC	Recd=EGBB	will try again...
OOPS! Req=EGCC	Recd=EGBB	will try again...
OOPS! Req=EGCC	Recd=EGBB	will try again...
OOPS! Req=EGCC	Recd=EGBB	will try again...
OOPS! Req=EGCC	Recd=EGBB	will try again...
OOPS! Req=EGCC	Recd=EGBB	will try again...
Gave up after 10 attempts for EGCC
OOPS! Req=EGDC	Recd=EGBB	will try again...
OOPS! Req=EGDC	Recd=EGBB	will try again...
OOPS! Req=EGDC	Recd=EGBB	will try again...
OOPS! Req=EGDC	Recd=EGBB	will try again...
OOPS! Req=EGDC	Recd=EGBB	will try again...
OOPS! Req=EGDC	Recd=EGBB	will try again...
OOPS! Req=EGDC	Recd=EGBB	will try again...
OOPS! Req=EGDC	Recd=EGBB	will try again...
OOPS! Req=EGDC	Recd=EGBB	will try again...
OOPS! Req=EGDC	Recd=EGBB	will try again...
Gave up after 10 attempts for EGDC
OOPS! Req=EGDG	Recd=EGDC	will try again...
OOPS! Req=EGDG	Recd=EGDC	will try again...
OOPS! Req=EGDG	Recd=EGDC	will try again...
OOPS! Req=EGDG	Recd=EGDC	will try again...
OOPS! Req=EGDG	Recd=EGDC	will try again...
OOPS! Req=EGDG	Recd=EGDC	will try again...
OOPS! Req=EGDG	Recd=EGDC	will try again...
OOPS! Req=EGDG	Recd=EGDC	will try again...
OOPS! Req=EGDG	Recd=EGDC	will try again...
OOPS! Req=EGDG	Recd=EGDC	will try again...
Gave up after 10 attempts for EGDG
OOPS! Req=EGDL	Recd=EGDC	will try again...
OOPS! Req=EGDL	Recd=EGDC	will try again...
OOPS! Req=EGDL	Recd=EGDC	will try again...
OOPS! Req=EGDL	Recd=EGDC	will try again...
OOPS! Req=EGDL	Recd=EGDC	will try again...
OOPS! Req=EGDL	Recd=EGDC	will try again...
OOPS! Req=EGDL	Recd=EGDC	will try again...
OOPS! Req=EGDL	Recd=EGDC	will try again...
OOPS! Req=EGDL	Recd=EGDC	will try again...
Req=EGDL	Recd=EGDL
OOPS! Req=EGDM	Recd=EGDL	will try again...
OOPS! Req=EGDM	Recd=EGDL	will try again...
OOPS! Req=EGDM	Recd=EGDL	will try again...
OOPS! Req=EGDM	Recd=EGDL	will try again...
OOPS! Req=EGDM	Recd=EGDL	will try again...
OOPS! Req=EGDM	Recd=EGDL	will try again...
OOPS! Req=EGDM	Recd=EGDL	will try again...
OOPS! Req=EGDM	Recd=EGDL	will try again...
OOPS! Req=EGDM	Recd=EGDL	will try again...
OOPS! Req=EGDM	Recd=EGDL	will try again...
Gave up after 10 attempts for EGDM
OOPS! Req=EGDN	Recd=EGDL	will try again...
OOPS! Req=EGDN	Recd=EGDL	will try again...
OOPS! Req=EGDN	Recd=EGDL	will try again...
OOPS! Req=EGDN	Recd=EGDL	will try again...
OOPS! Req=EGDN	Recd=EGDL	will try again...
OOPS! Req=EGDN	Recd=EGDL	will try again...
OOPS! Req=EGDN	Recd=EGDL	will try again...
OOPS! Req=EGDN	Recd=EGDL	will try again...
OOPS! Req=EGDN	Recd=EGDL	will try again...
OOPS! Req=EGDN	Recd=EGDL	will try again...
Gave up after 10 attempts for EGDN
OOPS! Req=EGDR	Recd=EGDL	will try again...
OOPS! Req=EGDR	Recd=EGDL	will try again...
OOPS! Req=EGDR	Recd=EGDL	will try again...
OOPS! Req=EGDR	Recd=EGDL	will try again...
OOPS! Req=EGDR	Recd=EGDL	will try again...
OOPS! Req=EGDR	Recd=EGDN	will try again...
OOPS! Req=EGDR	Recd=EGDN	will try again...
OOPS! Req=EGDR	Recd=EGDN	will try again...
OOPS! Req=EGDR	Recd=EGDN	will try again...
OOPS! Req=EGDR	Recd=EGDN	will try again...
Gave up after 10 attempts for EGDR
OOPS! Req=EGDX	Recd=EGDN	will try again...
OOPS! Req=EGDX	Recd=EGDN	will try again...
OOPS! Req=EGDX	Recd=EGDN	will try again...
OOPS! Req=EGDX	Recd=EGDN	will try again...
OOPS! Req=EGDX	Recd=EGDN	will try again...
OOPS! Req=EGDX	Recd=EGDN	will try again...
OOPS! Req=EGDX	Recd=EGDN	will try again...
OOPS! Req=EGDX	Recd=EGDN	will try again...
OOPS! Req=EGDX	Recd=EGDN	will try again...
OOPS! Req=EGDX	Recd=EGDN	will try again...
Gave up after 10 attempts for EGDX
OOPS! Req=EGDY	Recd=EGDN	will try again...
OOPS! Req=EGDY	Recd=EGDN	will try again...
OOPS! Req=EGDY	Recd=EGDN	will try again...
OOPS! Req=EGDY	Recd=EGDN	will try again...
OOPS! Req=EGDY	Recd=EGDN	will try again...
OOPS! Req=EGDY	Recd=EGDN	will try again...
OOPS! Req=EGDY	Recd=EGDN	will try again...
OOPS! Req=EGDY	Recd=EGDN	will try again...
OOPS! Req=EGDY	Recd=EGDN	will try again...
OOPS! Req=EGDY	Recd=EGDN	will try again...
Gave up after 10 attempts for EGDY
OOPS! Req=EGFF	Recd=EGDN	will try again...
OOPS! Req=EGFF	Recd=EGDN	will try again...
OOPS! Req=EGFF	Recd=EGDN	will try again...
OOPS! Req=EGFF	Recd=EGDN	will try again...
OOPS! Req=EGFF	Recd=EGDN	will try again...
OOPS! Req=EGFF	Recd=EGDN	will try again...
OOPS! Req=EGFF	Recd=EGDN	will try again...
Req=EGFF	Recd=EGFF
OOPS! Req=EGFH	Recd=EGFF	will try again...
OOPS! Req=EGFH	Recd=EGFF	will try again...
OOPS! Req=EGFH	Recd=EGFF	will try again...
OOPS! Req=EGFH	Recd=EGFF	will try again...
OOPS! Req=EGFH	Recd=EGFF	will try again...
OOPS! Req=EGFH	Recd=EGFF	will try again...
OOPS! Req=EGFH	Recd=EGFF	will try again...
OOPS! Req=EGFH	Recd=EGFF	will try again...
Req=EGFH	Recd=EGFH
OOPS! Req=EGGD	Recd=EGFH	will try again...
OOPS! Req=EGGD	Recd=EGFH	will try again...
OOPS! Req=EGGD	Recd=EGFH	will try again...
OOPS! Req=EGGD	Recd=EGFH	will try again...
OOPS! Req=EGGD	Recd=EGFH	will try again...
OOPS! Req=EGGD	Recd=EGFH	will try again...
OOPS! Req=EGGD	Recd=EGFH	will try again...
OOPS! Req=EGGD	Recd=EGFH	will try again...
OOPS! Req=EGGD	Recd=EGFH	will try again...
OOPS! Req=EGGD	Recd=EGFH	will try again...
Gave up after 10 attempts for EGGD
OOPS! Req=EGGP	Recd=EGFH	will try again...
OOPS! Req=EGGP	Recd=EGFH	will try again...
OOPS! Req=EGGP	Recd=EGFH	will try again...
OOPS! Req=EGGP	Recd=EGFH	will try again...
OOPS! Req=EGGP	Recd=EGFH	will try again...
OOPS! Req=EGGP	Recd=EGFH	will try again...
OOPS! Req=EGGP	Recd=EGFH	will try again...
OOPS! Req=EGGP	Recd=EGFH	will try again...
OOPS! Req=EGGP	Recd=EGFH	will try again...
OOPS! Req=EGGP	Recd=EGFH	will try again...
Gave up after 10 attempts for EGGP
OOPS! Req=EGGW	Recd=EGFH	will try again...
OOPS! Req=EGGW	Recd=EGFH	will try again...
OOPS! Req=EGGW	Recd=EGFH	will try again...
OOPS! Req=EGGW	Recd=EGFH	will try again...
OOPS! Req=EGGW	Recd=EGFH	will try again...
OOPS! Req=EGGW	Recd=EGFH	will try again...
OOPS! Req=EGGW	Recd=EGFH	will try again...
OOPS! Req=EGGW	Recd=EGFH	will try again...
OOPS! Req=EGGW	Recd=EGFH	will try again...
OOPS! Req=EGGW	Recd=EGFH	will try again...
Gave up after 10 attempts for EGGW
OOPS! Req=EGHD	Recd=EGFH	will try again...
OOPS! Req=EGHD	Recd=EGFH	will try again...
OOPS! Req=EGHD	Recd=EGFH	will try again...
OOPS! Req=EGHD	Recd=EGFH	will try again...
OOPS! Req=EGHD	Recd=EGGW	will try again...
OOPS! Req=EGHD	Recd=EGGW	will try again...
OOPS! Req=EGHD	Recd=EGGW	will try again...
OOPS! Req=EGHD	Recd=EGGW	will try again...
OOPS! Req=EGHD	Recd=EGGW	will try again...
OOPS! Req=EGHD	Recd=EGGW	will try again...
Gave up after 10 attempts for EGHD
OOPS! Req=EGHE	Recd=EGGW	will try again...
OOPS! Req=EGHE	Recd=EGGW	will try again...
OOPS! Req=EGHE	Recd=EGGW	will try again...
OOPS! Req=EGHE	Recd=EGGW	will try again...
OOPS! Req=EGHE	Recd=EGGW	will try again...
OOPS! Req=EGHE	Recd=EGGW	will try again...
OOPS! Req=EGHE	Recd=EGGW	will try again...
OOPS! Req=EGHE	Recd=EGGW	will try again...
OOPS! Req=EGHE	Recd=EGGW	will try again...
OOPS! Req=EGHE	Recd=EGGW	will try again...
Gave up after 10 attempts for EGHE
OOPS! Req=EGHH	Recd=EGGW	will try again...
OOPS! Req=EGHH	Recd=EGGW	will try again...
OOPS! Req=EGHH	Recd=EGGW	will try again...
OOPS! Req=EGHH	Recd=EGGW	will try again...
OOPS! Req=EGHH	Recd=EGGW	will try again...
OOPS! Req=EGHH	Recd=EGGW	will try again...
OOPS! Req=EGHH	Recd=EGGW	will try again...
OOPS! Req=EGHH	Recd=EGGW	will try again...
OOPS! Req=EGHH	Recd=EGGW	will try again...
OOPS! Req=EGHH	Recd=EGGW	will try again...
Gave up after 10 attempts for EGHH
OOPS! Req=EGHI	Recd=EGGW	will try again...
OOPS! Req=EGHI	Recd=EGGW	will try again...
OOPS! Req=EGHI	Recd=EGGW	will try again...
OOPS! Req=EGHI	Recd=EGGW	will try again...
OOPS! Req=EGHI	Recd=EGGW	will try again...
OOPS! Req=EGHI	Recd=EGGW	will try again...
OOPS! Req=EGHI	Recd=EGGW	will try again...
OOPS! Req=EGHI	Recd=EGGW	will try again...
OOPS! Req=EGHI	Recd=EGGW	will try again...
OOPS! Req=EGHI	Recd=EGGW	will try again...
Gave up after 10 attempts for EGHI
OOPS! Req=EGJA	Recd=EGGW	will try again...
OOPS! Req=EGJA	Recd=EGGW	will try again...
OOPS! Req=EGJA	Recd=EGGW	will try again...
OOPS! Req=EGJA	Recd=EGGW	will try again...
OOPS! Req=EGJA	Recd=EGGW	will try again...
OOPS! Req=EGJA	Recd=EGGW	will try again...
OOPS! Req=EGJA	Recd=EGGW	will try again...
OOPS! Req=EGJA	Recd=EGGW	will try again...
OOPS! Req=EGJA	Recd=EGGW	will try again...
OOPS! Req=EGJA	Recd=EGGW	will try again...
Gave up after 10 attempts for EGJA
OOPS! Req=EGJB	Recd=EGGW	will try again...
OOPS! Req=EGJB	Recd=EGGW	will try again...
OOPS! Req=EGJB	Recd=EGGW	will try again...
OOPS! Req=EGJB	Recd=EGGW	will try again...
OOPS! Req=EGJB	Recd=EGGW	will try again...
OOPS! Req=EGJB	Recd=EGGW	will try again...
OOPS! Req=EGJB	Recd=EGGW	will try again...
OOPS! Req=EGJB	Recd=EGGW	will try again...
OOPS! Req=EGJB	Recd=EGGW	will try again...
OOPS! Req=EGJB	Recd=EGGW	will try again...
Gave up after 10 attempts for EGJB
OOPS! Req=EGJJ	Recd=EGGW	will try again...
OOPS! Req=EGJJ	Recd=EGGW	will try again...
OOPS! Req=EGJJ	Recd=EGGW	will try again...
OOPS! Req=EGJJ	Recd=EGGW	will try again...
OOPS! Req=EGJJ	Recd=EGGW	will try again...
OOPS! Req=EGJJ	Recd=EGGW	will try again...
OOPS! Req=EGJJ	Recd=EGGW	will try again...
OOPS! Req=EGJJ	Recd=EGGW	will try again...
OOPS! Req=EGJJ	Recd=EGGW	will try again...
OOPS! Req=EGJJ	Recd=EGGW	will try again...
Gave up after 10 attempts for EGJJ
OOPS! Req=EGKA	Recd=EGGW	will try again...
OOPS! Req=EGKA	Recd=EGGW	will try again...
OOPS! Req=EGKA	Recd=EGGW	will try again...
OOPS! Req=EGKA	Recd=EGGW	will try again...
OOPS! Req=EGKA	Recd=EGGW	will try again...
OOPS! Req=EGKA	Recd=EGGW	will try again...
OOPS! Req=EGKA	Recd=EGGW	will try again...
OOPS! Req=EGKA	Recd=EGGW	will try again...
OOPS! Req=EGKA	Recd=EGGW	will try again...
OOPS! Req=EGKA	Recd=EGGW	will try again...
Gave up after 10 attempts for EGKA
OOPS! Req=EGKB	Recd=EGGW	will try again...
OOPS! Req=EGKB	Recd=EGGW	will try again...
OOPS! Req=EGKB	Recd=EGGW	will try again...
OOPS! Req=EGKB	Recd=EGGW	will try again...
OOPS! Req=EGKB	Recd=EGGW	will try again...
OOPS! Req=EGKB	Recd=EGGW	will try again...
OOPS! Req=EGKB	Recd=EGGW	will try again...
OOPS! Req=EGKB	Recd=EGGW	will try again...
OOPS! Req=EGKB	Recd=EGGW	will try again...
OOPS! Req=EGKB	Recd=EGGW	will try again...
Gave up after 10 attempts for EGKB
OOPS! Req=EGKK	Recd=EGGW	will try again...
OOPS! Req=EGKK	Recd=EGGW	will try again...
OOPS! Req=EGKK	Recd=EGGW	will try again...
OOPS! Req=EGKK	Recd=EGGW	will try again...
OOPS! Req=EGKK	Recd=EGGW	will try again...
OOPS! Req=EGKK	Recd=EGGW	will try again...
OOPS! Req=EGKK	Recd=EGGW	will try again...
OOPS! Req=EGKK	Recd=EGGW	will try again...
OOPS! Req=EGKK	Recd=EGGW	will try again...
OOPS! Req=EGKK	Recd=EGGW	will try again...
Gave up after 10 attempts for EGKK
OOPS! Req=EGLC	Recd=EGGW	will try again...
OOPS! Req=EGLC	Recd=EGGW	will try again...
OOPS! Req=EGLC	Recd=EGGW	will try again...
OOPS! Req=EGLC	Recd=EGGW	will try again...
OOPS! Req=EGLC	Recd=EGGW	will try again...
OOPS! Req=EGLC	Recd=EGGW	will try again...
OOPS! Req=EGLC	Recd=EGGW	will try again...
OOPS! Req=EGLC	Recd=EGGW	will try again...
OOPS! Req=EGLC	Recd=EGGW	will try again...
OOPS! Req=EGLC	Recd=EGGW	will try again...
Gave up after 10 attempts for EGLC
OOPS! Req=EGLF	Recd=EGGW	will try again...
OOPS! Req=EGLF	Recd=EGGW	will try again...
OOPS! Req=EGLF	Recd=EGGW	will try again...
OOPS! Req=EGLF	Recd=EGGW	will try again...
OOPS! Req=EGLF	Recd=EGGW	will try again...
OOPS! Req=EGLF	Recd=EGGW	will try again...
OOPS! Req=EGLF	Recd=EGGW	will try again...
OOPS! Req=EGLF	Recd=EGGW	will try again...
OOPS! Req=EGLF	Recd=EGGW	will try again...
OOPS! Req=EGLF	Recd=EGGW	will try again...
Gave up after 10 attempts for EGLF
OOPS! Req=EGLL	Recd=EGGW	will try again...
OOPS! Req=EGLL	Recd=EGGW	will try again...
OOPS! Req=EGLL	Recd=EGGW	will try again...
OOPS! Req=EGLL	Recd=EGGW	will try again...
OOPS! Req=EGLL	Recd=EGGW	will try again...
OOPS! Req=EGLL	Recd=EGGW	will try again...
OOPS! Req=EGLL	Recd=EGGW	will try again...
OOPS! Req=EGLL	Recd=EGGW	will try again...
OOPS! Req=EGLL	Recd=EGGW	will try again...
OOPS! Req=EGLL	Recd=EGGW	will try again...
Gave up after 10 attempts for EGLL
OOPS! Req=EGMC	Recd=EGGW	will try again...
OOPS! Req=EGMC	Recd=EGGW	will try again...
OOPS! Req=EGMC	Recd=EGGW	will try again...
OOPS! Req=EGMC	Recd=EGGW	will try again...
OOPS! Req=EGMC	Recd=EGGW	will try again...
OOPS! Req=EGMC	Recd=EGGW	will try again...
OOPS! Req=EGMC	Recd=EGGW	will try again...
OOPS! Req=EGMC	Recd=EGGW	will try again...
OOPS! Req=EGMC	Recd=EGGW	will try again...
OOPS! Req=EGMC	Recd=EGGW	will try again...
Gave up after 10 attempts for EGMC
OOPS! Req=EGMD	Recd=EGGW	will try again...
OOPS! Req=EGMD	Recd=EGGW	will try again...
OOPS! Req=EGMD	Recd=EGGW	will try again...
OOPS! Req=EGMD	Recd=EGGW	will try again...
OOPS! Req=EGMD	Recd=EGGW	will try again...
OOPS! Req=EGMD	Recd=EGGW	will try again...
OOPS! Req=EGMD	Recd=EGGW	will try again...
OOPS! Req=EGMD	Recd=EGGW	will try again...
OOPS! Req=EGMD	Recd=EGGW	will try again...
OOPS! Req=EGMD	Recd=EGGW	will try again...
Gave up after 10 attempts for EGMD
OOPS! Req=EGMH	Recd=EGGW	will try again...
OOPS! Req=EGMH	Recd=EGGW	will try again...
OOPS! Req=EGMH	Recd=EGGW	will try again...
OOPS! Req=EGMH	Recd=EGGW	will try again...
OOPS! Req=EGMH	Recd=EGGW	will try again...
OOPS! Req=EGMH	Recd=EGGW	will try again...
OOPS! Req=EGMH	Recd=EGGW	will try again...
OOPS! Req=EGMH	Recd=EGGW	will try again...
OOPS! Req=EGMH	Recd=EGGW	will try again...
OOPS! Req=EGMH	Recd=EGGW	will try again...
Gave up after 10 attempts for EGMH
OOPS! Req=EGNH	Recd=EGGW	will try again...
OOPS! Req=EGNH	Recd=EGGW	will try again...
OOPS! Req=EGNH	Recd=EGGW	will try again...
OOPS! Req=EGNH	Recd=EGGW	will try again...
OOPS! Req=EGNH	Recd=EGGW	will try again...
OOPS! Req=EGNH	Recd=EGGW	will try again...
OOPS! Req=EGNH	Recd=EGGW	will try again...
OOPS! Req=EGNH	Recd=EGGW	will try again...
OOPS! Req=EGNH	Recd=EGGW	will try again...
OOPS! Req=EGNH	Recd=EGGW	will try again...
Gave up after 10 attempts for EGNH
OOPS! Req=EGNJ	Recd=EGGW	will try again...
OOPS! Req=EGNJ	Recd=EGGW	will try again...
OOPS! Req=EGNJ	Recd=EGGW	will try again...
OOPS! Req=EGNJ	Recd=EGGW	will try again...
OOPS! Req=EGNJ	Recd=EGGW	will try again...
OOPS! Req=EGNJ	Recd=EGGW	will try again...
OOPS! Req=EGNJ	Recd=EGGW	will try again...
OOPS! Req=EGNJ	Recd=EGGW	will try again...
OOPS! Req=EGNJ	Recd=EGGW	will try again...
OOPS! Req=EGNJ	Recd=EGGW	will try again...
Gave up after 10 attempts for EGNJ
OOPS! Req=EGNM	Recd=EGGW	will try again...
OOPS! Req=EGNM	Recd=EGGW	will try again...
OOPS! Req=EGNM	Recd=EGGW	will try again...
OOPS! Req=EGNM	Recd=EGGW	will try again...
OOPS! Req=EGNM	Recd=EGGW	will try again...
OOPS! Req=EGNM	Recd=EGGW	will try again...
OOPS! Req=EGNM	Recd=EGGW	will try again...
OOPS! Req=EGNM	Recd=EGGW	will try again...
OOPS! Req=EGNM	Recd=EGGW	will try again...
OOPS! Req=EGNM	Recd=EGGW	will try again...
Gave up after 10 attempts for EGNM
OOPS! Req=EGNO	Recd=EGGW	will try again...
OOPS! Req=EGNO	Recd=EGGW	will try again...
OOPS! Req=EGNO	Recd=EGGW	will try again...
OOPS! Req=EGNO	Recd=EGGW	will try again...
OOPS! Req=EGNO	Recd=EGGW	will try again...
OOPS! Req=EGNO	Recd=EGGW	will try again...
OOPS! Req=EGNO	Recd=EGGW	will try again...
OOPS! Req=EGNO	Recd=EGGW	will try again...
OOPS! Req=EGNO	Recd=EGGW	will try again...
OOPS! Req=EGNO	Recd=EGGW	will try again...
Gave up after 10 attempts for EGNO
OOPS! Req=EGNR	Recd=EGGW	will try again...
OOPS! Req=EGNR	Recd=EGGW	will try again...
OOPS! Req=EGNR	Recd=EGGW	will try again...
OOPS! Req=EGNR	Recd=EGGW	will try again...
OOPS! Req=EGNR	Recd=EGGW	will try again...
OOPS! Req=EGNR	Recd=EGGW	will try again...
OOPS! Req=EGNR	Recd=EGGW	will try again...
OOPS! Req=EGNR	Recd=EGGW	will try again...
OOPS! Req=EGNR	Recd=EGGW	will try again...
OOPS! Req=EGNR	Recd=EGGW	will try again...
Gave up after 10 attempts for EGNR
OOPS! Req=EGNX	Recd=EGGW	will try again...
OOPS! Req=EGNX	Recd=EGGW	will try again...
OOPS! Req=EGNX	Recd=EGGW	will try again...
OOPS! Req=EGNX	Recd=EGGW	will try again...
OOPS! Req=EGNX	Recd=EGGW	will try again...
OOPS! Req=EGNX	Recd=EGGW	will try again...
OOPS! Req=EGNX	Recd=EGGW	will try again...
OOPS! Req=EGNX	Recd=EGGW	will try again...
OOPS! Req=EGNX	Recd=EGGW	will try again...
OOPS! Req=EGNX	Recd=EGGW	will try again...
Gave up after 10 attempts for EGNX
OOPS! Req=EGOD	Recd=EGGW	will try again...
OOPS! Req=EGOD	Recd=EGGW	will try again...
OOPS! Req=EGOD	Recd=EGGW	will try again...
OOPS! Req=EGOD	Recd=EGGW	will try again...
OOPS! Req=EGOD	Recd=EGGW	will try again...
OOPS! Req=EGOD	Recd=EGGW	will try again...
OOPS! Req=EGOD	Recd=EGGW	will try again...
OOPS! Req=EGOD	Recd=EGGW	will try again...
OOPS! Req=EGOD	Recd=EGGW	will try again...
OOPS! Req=EGOD	Recd=EGGW	will try again...
Gave up after 10 attempts for EGOD
OOPS! Req=EGOS	Recd=EGGW	will try again...
OOPS! Req=EGOS	Recd=EGGW	will try again...
OOPS! Req=EGOS	Recd=EGGW	will try again...
OOPS! Req=EGOS	Recd=EGGW	will try again...
OOPS! Req=EGOS	Recd=EGGW	will try again...
OOPS! Req=EGOS	Recd=EGGW	will try again...
OOPS! Req=EGOS	Recd=EGGW	will try again...
OOPS! Req=EGOS	Recd=EGGW	will try again...
OOPS! Req=EGOS	Recd=EGGW	will try again...
OOPS! Req=EGOS	Recd=EGGW	will try again...
Gave up after 10 attempts for EGOS
OOPS! Req=EGOV	Recd=EGGW	will try again...
OOPS! Req=EGOV	Recd=EGGW	will try again...
OOPS! Req=EGOV	Recd=EGGW	will try again...
OOPS! Req=EGOV	Recd=EGGW	will try again...
OOPS! Req=EGOV	Recd=EGGW	will try again...
OOPS! Req=EGOV	Recd=EGGW	will try again...
OOPS! Req=EGOV	Recd=EGGW	will try again...
OOPS! Req=EGOV	Recd=EGGW	will try again...
OOPS! Req=EGOV	Recd=EGGW	will try again...
OOPS! Req=EGOV	Recd=EGGW	will try again...
Gave up after 10 attempts for EGOV
OOPS! Req=EGSC	Recd=EGGW	will try again...
OOPS! Req=EGSC	Recd=EGGW	will try again...
OOPS! Req=EGSC	Recd=EGGW	will try again...
OOPS! Req=EGSC	Recd=EGGW	will try again...
OOPS! Req=EGSC	Recd=EGGW	will try again...
OOPS! Req=EGSC	Recd=EGGW	will try again...
OOPS! Req=EGSC	Recd=EGGW	will try again...
OOPS! Req=EGSC	Recd=EGGW	will try again...
OOPS! Req=EGSC	Recd=EGGW	will try again...
OOPS! Req=EGSC	Recd=EGGW	will try again...
Gave up after 10 attempts for EGSC
OOPS! Req=EGSH	Recd=EGGW	will try again...
OOPS! Req=EGSH	Recd=EGGW	will try again...
OOPS! Req=EGSH	Recd=EGGW	will try again...
OOPS! Req=EGSH	Recd=EGGW	will try again...
OOPS! Req=EGSH	Recd=EGGW	will try again...
OOPS! Req=EGSH	Recd=EGGW	will try again...
OOPS! Req=EGSH	Recd=EGGW	will try again...
OOPS! Req=EGSH	Recd=EGGW	will try again...
OOPS! Req=EGSH	Recd=EGGW	will try again...
OOPS! Req=EGSH	Recd=EGGW	will try again...
Gave up after 10 attempts for EGSH
OOPS! Req=EGSS	Recd=EGGW	will try again...
OOPS! Req=EGSS	Recd=EGGW	will try again...
OOPS! Req=EGSS	Recd=EGGW	will try again...
OOPS! Req=EGSS	Recd=EGGW	will try again...
OOPS! Req=EGSS	Recd=EGGW	will try again...
OOPS! Req=EGSS	Recd=EGGW	will try again...
OOPS! Req=EGSS	Recd=EGGW	will try again...
OOPS! Req=EGSS	Recd=EGGW	will try again...
OOPS! Req=EGSS	Recd=EGGW	will try again...
OOPS! Req=EGSS	Recd=EGGW	will try again...
Gave up after 10 attempts for EGSS
OOPS! Req=EGSY	Recd=EGGW	will try again...
OOPS! Req=EGSY	Recd=EGGW	will try again...
OOPS! Req=EGSY	Recd=EGGW	will try again...
OOPS! Req=EGSY	Recd=EGGW	will try again...
OOPS! Req=EGSY	Recd=EGGW	will try again...
OOPS! Req=EGSY	Recd=EGGW	will try again...
OOPS! Req=EGSY	Recd=EGGW	will try again...
OOPS! Req=EGSY	Recd=EGGW	will try again...
OOPS! Req=EGSY	Recd=EGGW	will try again...
OOPS! Req=EGSY	Recd=EGGW	will try again...
Gave up after 10 attempts for EGSY
OOPS! Req=EGTC	Recd=EGGW	will try again...
OOPS! Req=EGTC	Recd=EGGW	will try again...
OOPS! Req=EGTC	Recd=EGGW	will try again...
OOPS! Req=EGTC	Recd=EGGW	will try again...
OOPS! Req=EGTC	Recd=EGGW	will try again...
OOPS! Req=EGTC	Recd=EGGW	will try again...
OOPS! Req=EGTC	Recd=EGGW	will try again...
OOPS! Req=EGTC	Recd=EGGW	will try again...
OOPS! Req=EGTC	Recd=EGGW	will try again...
OOPS! Req=EGTC	Recd=EGGW	will try again...
Gave up after 10 attempts for EGTC
OOPS! Req=EGTE	Recd=EGGW	will try again...
OOPS! Req=EGTE	Recd=EGGW	will try again...
OOPS! Req=EGTE	Recd=EGGW	will try again...
OOPS! Req=EGTE	Recd=EGGW	will try again...
OOPS! Req=EGTE	Recd=EGGW	will try again...
OOPS! Req=EGTE	Recd=EGGW	will try again...
OOPS! Req=EGTE	Recd=EGGW	will try again...
OOPS! Req=EGTE	Recd=EGGW	will try again...
OOPS! Req=EGTE	Recd=EGGW	will try again...
OOPS! Req=EGTE	Recd=EGGW	will try again...
Gave up after 10 attempts for EGTE
OOPS! Req=EGTG	Recd=EGGW	will try again...
OOPS! Req=EGTG	Recd=EGGW	will try again...
OOPS! Req=EGTG	Recd=EGGW	will try again...
OOPS! Req=EGTG	Recd=EGGW	will try again...
OOPS! Req=EGTG	Recd=EGGW	will try again...
OOPS! Req=EGTG	Recd=EGGW	will try again...
OOPS! Req=EGTG	Recd=EGGW	will try again...
OOPS! Req=EGTG	Recd=EGGW	will try again...
OOPS! Req=EGTG	Recd=EGGW	will try again...
OOPS! Req=EGTG	Recd=EGGW	will try again...
Gave up after 10 attempts for EGTG
OOPS! Req=EGTH	Recd=EGGW	will try again...
OOPS! Req=EGTH	Recd=EGGW	will try again...
OOPS! Req=EGTH	Recd=EGGW	will try again...
OOPS! Req=EGTH	Recd=EGGW	will try again...
OOPS! Req=EGTH	Recd=EGGW	will try again...
OOPS! Req=EGTH	Recd=EGGW	will try again...
OOPS! Req=EGTH	Recd=EGGW	will try again...
OOPS! Req=EGTH	Recd=EGGW	will try again...
OOPS! Req=EGTH	Recd=EGGW	will try again...
OOPS! Req=EGTH	Recd=EGGW	will try again...
Gave up after 10 attempts for EGTH
OOPS! Req=EGTI	Recd=EGGW	will try again...
OOPS! Req=EGTI	Recd=EGGW	will try again...
OOPS! Req=EGTI	Recd=EGGW	will try again...
OOPS! Req=EGTI	Recd=EGGW	will try again...
OOPS! Req=EGTI	Recd=EGGW	will try again...
OOPS! Req=EGTI	Recd=EGGW	will try again...
OOPS! Req=EGTI	Recd=EGGW	will try again...
OOPS! Req=EGTI	Recd=EGGW	will try again...
OOPS! Req=EGTI	Recd=EGGW	will try again...
OOPS! Req=EGTI	Recd=EGGW	will try again...
Gave up after 10 attempts for EGTI
OOPS! Req=EGUB	Recd=EGGW	will try again...
OOPS! Req=EGUB	Recd=EGGW	will try again...
OOPS! Req=EGUB	Recd=EGGW	will try again...
OOPS! Req=EGUB	Recd=EGGW	will try again...
OOPS! Req=EGUB	Recd=EGGW	will try again...
OOPS! Req=EGUB	Recd=EGGW	will try again...
OOPS! Req=EGUB	Recd=EGGW	will try again...
OOPS! Req=EGUB	Recd=EGGW	will try again...
OOPS! Req=EGUB	Recd=EGGW	will try again...
OOPS! Req=EGUB	Recd=EGGW	will try again...
Gave up after 10 attempts for EGUB
OOPS! Req=EGUL	Recd=EGGW	will try again...
OOPS! Req=EGUL	Recd=EGGW	will try again...
OOPS! Req=EGUL	Recd=EGGW	will try again...
OOPS! Req=EGUL	Recd=EGGW	will try again...
OOPS! Req=EGUL	Recd=EGGW	will try again...
OOPS! Req=EGUL	Recd=EGGW	will try again...
OOPS! Req=EGUL	Recd=EGGW	will try again...
OOPS! Req=EGUL	Recd=EGGW	will try again...
OOPS! Req=EGUL	Recd=EGGW	will try again...
OOPS! Req=EGUL	Recd=EGGW	will try again...
Gave up after 10 attempts for EGUL
OOPS! Req=EGUN	Recd=EGGW	will try again...
OOPS! Req=EGUN	Recd=EGGW	will try again...
OOPS! Req=EGUN	Recd=EGGW	will try again...
OOPS! Req=EGUN	Recd=EGGW	will try again...
OOPS! Req=EGUN	Recd=EGGW	will try again...
OOPS! Req=EGUN	Recd=EGGW	will try again...
OOPS! Req=EGUN	Recd=EGGW	will try again...
OOPS! Req=EGUN	Recd=EGGW	will try again...
OOPS! Req=EGUN	Recd=EGGW	will try again...
OOPS! Req=EGUN	Recd=EGGW	will try again...
Gave up after 10 attempts for EGUN
OOPS! Req=EGUW	Recd=EGGW	will try again...
OOPS! Req=EGUW	Recd=EGGW	will try again...
OOPS! Req=EGUW	Recd=EGGW	will try again...
OOPS! Req=EGUW	Recd=EGGW	will try again...
OOPS! Req=EGUW	Recd=EGGW	will try again...
OOPS! Req=EGUW	Recd=EGGW	will try again...
OOPS! Req=EGUW	Recd=EGGW	will try again...
OOPS! Req=EGUW	Recd=EGGW	will try again...
OOPS! Req=EGUW	Recd=EGGW	will try again...
OOPS! Req=EGUW	Recd=EGGW	will try again...
Gave up after 10 attempts for EGUW
OOPS! Req=EGUY	Recd=EGGW	will try again...
OOPS! Req=EGUY	Recd=EGGW	will try again...
OOPS! Req=EGUY	Recd=EGGW	will try again...
OOPS! Req=EGUY	Recd=EGGW	will try again...
OOPS! Req=EGUY	Recd=EGGW	will try again...
OOPS! Req=EGUY	Recd=EGGW	will try again...
OOPS! Req=EGUY	Recd=EGGW	will try again...
OOPS! Req=EGUY	Recd=EGGW	will try again...
OOPS! Req=EGUY	Recd=EGGW	will try again...
OOPS! Req=EGUY	Recd=EGGW	will try again...
Gave up after 10 attempts for EGUY
OOPS! Req=EGVA	Recd=EGGW	will try again...
OOPS! Req=EGVA	Recd=EGGW	will try again...
OOPS! Req=EGVA	Recd=EGGW	will try again...
OOPS! Req=EGVA	Recd=EGGW	will try again...
OOPS! Req=EGVA	Recd=EGGW	will try again...
OOPS! Req=EGVA	Recd=EGGW	will try again...
OOPS! Req=EGVA	Recd=EGGW	will try again...
OOPS! Req=EGVA	Recd=EGGW	will try again...
OOPS! Req=EGVA	Recd=EGGW	will try again...
OOPS! Req=EGVA	Recd=EGGW	will try again...
Gave up after 10 attempts for EGVA
OOPS! Req=EGVN	Recd=EGGW	will try again...
OOPS! Req=EGVN	Recd=EGGW	will try again...
OOPS! Req=EGVN	Recd=EGGW	will try again...
OOPS! Req=EGVN	Recd=EGGW	will try again...
OOPS! Req=EGVN	Recd=EGGW	will try again...
OOPS! Req=EGVN	Recd=EGGW	will try again...
OOPS! Req=EGVN	Recd=EGGW	will try again...
OOPS! Req=EGVN	Recd=EGGW	will try again...
OOPS! Req=EGVN	Recd=EGGW	will try again...
OOPS! Req=EGVN	Recd=EGGW	will try again...
Gave up after 10 attempts for EGVN
OOPS! Req=EGVO	Recd=EGGW	will try again...
OOPS! Req=EGVO	Recd=EGGW	will try again...
OOPS! Req=EGVO	Recd=EGGW	will try again...
OOPS! Req=EGVO	Recd=EGGW	will try again...
OOPS! Req=EGVO	Recd=EGGW	will try again...
OOPS! Req=EGVO	Recd=EGGW	will try again...
OOPS! Req=EGVO	Recd=EGGW	will try again...
OOPS! Req=EGVO	Recd=EGGW	will try again...
OOPS! Req=EGVO	Recd=EGGW	will try again...
OOPS! Req=EGVO	Recd=EGGW	will try again...
Gave up after 10 attempts for EGVO
OOPS! Req=EGVP	Recd=EGGW	will try again...
OOPS! Req=EGVP	Recd=EGGW	will try again...
OOPS! Req=EGVP	Recd=EGGW	will try again...
OOPS! Req=EGVP	Recd=EGGW	will try again...
OOPS! Req=EGVP	Recd=EGGW	will try again...
OOPS! Req=EGVP	Recd=EGGW	will try again...
OOPS! Req=EGVP	Recd=EGGW	will try again...
OOPS! Req=EGVP	Recd=EGGW	will try again...
OOPS! Req=EGVP	Recd=EGGW	will try again...
OOPS! Req=EGVP	Recd=EGGW	will try again...
Gave up after 10 attempts for EGVP
OOPS! Req=EGWC	Recd=EGGW	will try again...
OOPS! Req=EGWC	Recd=EGGW	will try again...
OOPS! Req=EGWC	Recd=EGGW	will try again...
OOPS! Req=EGWC	Recd=EGGW	will try again...
OOPS! Req=EGWC	Recd=EGGW	will try again...
OOPS! Req=EGWC	Recd=EGGW	will try again...
OOPS! Req=EGWC	Recd=EGGW	will try again...
OOPS! Req=EGWC	Recd=EGGW	will try again...
OOPS! Req=EGWC	Recd=EGGW	will try again...
OOPS! Req=EGWC	Recd=EGGW	will try again...
Gave up after 10 attempts for EGWC
OOPS! Req=EGWU	Recd=EGGW	will try again...
OOPS! Req=EGWU	Recd=EGGW	will try again...
OOPS! Req=EGWU	Recd=EGGW	will try again...
OOPS! Req=EGWU	Recd=EGGW	will try again...
OOPS! Req=EGWU	Recd=EGGW	will try again...
OOPS! Req=EGWU	Recd=EGGW	will try again...
OOPS! Req=EGWU	Recd=EGGW	will try again...
OOPS! Req=EGWU	Recd=EGGW	will try again...
OOPS! Req=EGWU	Recd=EGGW	will try again...
OOPS! Req=EGWU	Recd=EGGW	will try again...
Gave up after 10 attempts for EGWU
OOPS! Req=EGXC	Recd=EGGW	will try again...
OOPS! Req=EGXC	Recd=EGGW	will try again...
OOPS! Req=EGXC	Recd=EGGW	will try again...
OOPS! Req=EGXC	Recd=EGGW	will try again...
OOPS! Req=EGXC	Recd=EGGW	will try again...
OOPS! Req=EGXC	Recd=EGGW	will try again...
OOPS! Req=EGXC	Recd=EGGW	will try again...
OOPS! Req=EGXC	Recd=EGGW	will try again...
OOPS! Req=EGXC	Recd=EGGW	will try again...
OOPS! Req=EGXC	Recd=EGGW	will try again...
Gave up after 10 attempts for EGXC
OOPS! Req=EGXG	Recd=EGGW	will try again...
OOPS! Req=EGXG	Recd=EGGW	will try again...
OOPS! Req=EGXG	Recd=EGGW	will try again...
OOPS! Req=EGXG	Recd=EGGW	will try again...
OOPS! Req=EGXG	Recd=EGGW	will try again...
OOPS! Req=EGXG	Recd=EGGW	will try again...
OOPS! Req=EGXG	Recd=EGGW	will try again...
OOPS! Req=EGXG	Recd=EGGW	will try again...
OOPS! Req=EGXG	Recd=EGGW	will try again...
OOPS! Req=EGXG	Recd=EGGW	will try again...
Gave up after 10 attempts for EGXG
OOPS! Req=EGXH	Recd=EGGW	will try again...
OOPS! Req=EGXH	Recd=EGGW	will try again...
OOPS! Req=EGXH	Recd=EGGW	will try again...
OOPS! Req=EGXH	Recd=EGGW	will try again...
OOPS! Req=EGXH	Recd=EGGW	will try again...
OOPS! Req=EGXH	Recd=EGGW	will try again...
OOPS! Req=EGXH	Recd=EGGW	will try again...
OOPS! Req=EGXH	Recd=EGGW	will try again...
OOPS! Req=EGXH	Recd=EGGW	will try again...
OOPS! Req=EGXH	Recd=EGGW	will try again...
Gave up after 10 attempts for EGXH
OOPS! Req=EGXJ	Recd=EGGW	will try again...
OOPS! Req=EGXJ	Recd=EGGW	will try again...
OOPS! Req=EGXJ	Recd=EGGW	will try again...
OOPS! Req=EGXJ	Recd=EGGW	will try again...
OOPS! Req=EGXJ	Recd=EGGW	will try again...
OOPS! Req=EGXJ	Recd=EGGW	will try again...
OOPS! Req=EGXJ	Recd=EGGW	will try again...
OOPS! Req=EGXJ	Recd=EGGW	will try again...
OOPS! Req=EGXJ	Recd=EGGW	will try again...
OOPS! Req=EGXJ	Recd=EGGW	will try again...
Gave up after 10 attempts for EGXJ
OOPS! Req=EGXN	Recd=EGGW	will try again...
OOPS! Req=EGXN	Recd=EGGW	will try again...
OOPS! Req=EGXN	Recd=EGGW	will try again...
OOPS! Req=EGXN	Recd=EGGW	will try again...
OOPS! Req=EGXN	Recd=EGGW	will try again...
OOPS! Req=EGXN	Recd=EGGW	will try again...
OOPS! Req=EGXN	Recd=EGGW	will try again...
OOPS! Req=EGXN	Recd=EGGW	will try again...
OOPS! Req=EGXN	Recd=EGGW	will try again...
OOPS! Req=EGXN	Recd=EGGW	will try again...
Gave up after 10 attempts for EGXN
OOPS! Req=EGXP	Recd=EGGW	will try again...
OOPS! Req=EGXP	Recd=EGGW	will try again...
OOPS! Req=EGXP	Recd=EGGW	will try again...
OOPS! Req=EGXP	Recd=EGGW	will try again...
OOPS! Req=EGXP	Recd=EGGW	will try again...
OOPS! Req=EGXP	Recd=EGGW	will try again...
OOPS! Req=EGXP	Recd=EGGW	will try again...
OOPS! Req=EGXP	Recd=EGGW	will try again...
OOPS! Req=EGXP	Recd=EGGW	will try again...
OOPS! Req=EGXP	Recd=EGGW	will try again...
Gave up after 10 attempts for EGXP
OOPS! Req=EGXT	Recd=EGGW	will try again...
OOPS! Req=EGXT	Recd=EGGW	will try again...
OOPS! Req=EGXT	Recd=EGGW	will try again...
OOPS! Req=EGXT	Recd=EGGW	will try again...
OOPS! Req=EGXT	Recd=EGGW	will try again...
OOPS! Req=EGXT	Recd=EGGW	will try again...
OOPS! Req=EGXT	Recd=EGGW	will try again...
OOPS! Req=EGXT	Recd=EGGW	will try again...
OOPS! Req=EGXT	Recd=EGGW	will try again...
OOPS! Req=EGXT	Recd=EGGW	will try again...
Gave up after 10 attempts for EGXT
OOPS! Req=EGXW	Recd=EGGW	will try again...
OOPS! Req=EGXW	Recd=EGGW	will try again...
OOPS! Req=EGXW	Recd=EGGW	will try again...
OOPS! Req=EGXW	Recd=EGGW	will try again...
OOPS! Req=EGXW	Recd=EGGW	will try again...
OOPS! Req=EGXW	Recd=EGGW	will try again...
OOPS! Req=EGXW	Recd=EGGW	will try again...
OOPS! Req=EGXW	Recd=EGGW	will try again...
OOPS! Req=EGXW	Recd=EGGW	will try again...
OOPS! Req=EGXW	Recd=EGGW	will try again...
Gave up after 10 attempts for EGXW
OOPS! Req=EGYC	Recd=EGGW	will try again...
OOPS! Req=EGYC	Recd=EGGW	will try again...
OOPS! Req=EGYC	Recd=EGGW	will try again...
OOPS! Req=EGYC	Recd=EGGW	will try again...
OOPS! Req=EGYC	Recd=EGGW	will try again...
OOPS! Req=EGYC	Recd=EGGW	will try again...
OOPS! Req=EGYC	Recd=EGGW	will try again...
OOPS! Req=EGYC	Recd=EGGW	will try again...
OOPS! Req=EGYC	Recd=EGGW	will try again...
OOPS! Req=EGYC	Recd=EGGW	will try again...
Gave up after 10 attempts for EGYC
OOPS! Req=EGYD	Recd=EGGW	will try again...
OOPS! Req=EGYD	Recd=EGGW	will try again...
OOPS! Req=EGYD	Recd=EGGW	will try again...
OOPS! Req=EGYD	Recd=EGGW	will try again...
OOPS! Req=EGYD	Recd=EGGW	will try again...
OOPS! Req=EGYD	Recd=EGGW	will try again...
OOPS! Req=EGYD	Recd=EGGW	will try again...
OOPS! Req=EGYD	Recd=EGGW	will try again...
OOPS! Req=EGYD	Recd=EGGW	will try again...
OOPS! Req=EGYD	Recd=EGGW	will try again...
Gave up after 10 attempts for EGYD
OOPS! Req=EGYE	Recd=EGGW	will try again...
OOPS! Req=EGYE	Recd=EGGW	will try again...
OOPS! Req=EGYE	Recd=EGGW	will try again...
OOPS! Req=EGYE	Recd=EGGW	will try again...
OOPS! Req=EGYE	Recd=EGGW	will try again...
OOPS! Req=EGYE	Recd=EGGW	will try again...
OOPS! Req=EGYE	Recd=EGGW	will try again...
OOPS! Req=EGYE	Recd=EGGW	will try again...
OOPS! Req=EGYE	Recd=EGGW	will try again...
OOPS! Req=EGYE	Recd=EGGW	will try again...
Gave up after 10 attempts for EGYE
OOPS! Req=EGYM	Recd=EGGW	will try again...
OOPS! Req=EGYM	Recd=EGGW	will try again...
OOPS! Req=EGYM	Recd=EGGW	will try again...
OOPS! Req=EGYM	Recd=EGGW	will try again...
OOPS! Req=EGYM	Recd=EGGW	will try again...
OOPS! Req=EGYM	Recd=EGGW	will try again...
OOPS! Req=EGYM	Recd=EGGW	will try again...
OOPS! Req=EGYM	Recd=EGGW	will try again...
OOPS! Req=EGYM	Recd=EGGW	will try again...
OOPS! Req=EGYM	Recd=EGGW	will try again...
Gave up after 10 attempts for EGYM
OOPS! Req=EIDW	Recd=EGGW	will try again...
OOPS! Req=EIDW	Recd=EGGW	will try again...
OOPS! Req=EIDW	Recd=EGGW	will try again...
OOPS! Req=EIDW	Recd=EGGW	will try again...
OOPS! Req=EIDW	Recd=EGGW	will try again...
OOPS! Req=EIDW	Recd=EGGW	will try again...
OOPS! Req=EIDW	Recd=EGGW	will try again...
OOPS! Req=EIDW	Recd=EGGW	will try again...
OOPS! Req=EIDW	Recd=EGGW	will try again...
OOPS! Req=EIDW	Recd=EGGW	will try again...
Gave up after 10 attempts for EIDW
OOPS! Req=EIME	Recd=EGGW	will try again...
OOPS! Req=EIME	Recd=EGGW	will try again...
OOPS! Req=EIME	Recd=EGGW	will try again...
OOPS! Req=EIME	Recd=EGGW	will try again...
OOPS! Req=EIME	Recd=EGGW	will try again...
OOPS! Req=EIME	Recd=EGGW	will try again...
OOPS! Req=EIME	Recd=EGGW	will try again...
OOPS! Req=EIME	Recd=EGGW	will try again...
OOPS! Req=EIME	Recd=EGGW	will try again...
OOPS! Req=EIME	Recd=EGGW	will try again...
Gave up after 10 attempts for EIME
OOPS! Req=LFOE	Recd=EGGW	will try again...
OOPS! Req=LFOE	Recd=EGGW	will try again...
OOPS! Req=LFOE	Recd=EGGW	will try again...
OOPS! Req=LFOE	Recd=EGGW	will try again...
OOPS! Req=LFOE	Recd=EGGW	will try again...
OOPS! Req=LFOE	Recd=EGGW	will try again...
OOPS! Req=LFOE	Recd=EGGW	will try again...
OOPS! Req=LFOE	Recd=EGGW	will try again...
OOPS! Req=LFOE	Recd=EGGW	will try again...
OOPS! Req=LFOE	Recd=EGGW	will try again...
Gave up after 10 attempts for LFOE
OOPS! Req=LFOH	Recd=EGGW	will try again...
OOPS! Req=LFOH	Recd=EGGW	will try again...
OOPS! Req=LFOH	Recd=EGGW	will try again...
OOPS! Req=LFOH	Recd=EGGW	will try again...
OOPS! Req=LFOH	Recd=EGGW	will try again...
OOPS! Req=LFOH	Recd=EGGW	will try again...
OOPS! Req=LFOH	Recd=EGGW	will try again...
OOPS! Req=LFOH	Recd=EGGW	will try again...
OOPS! Req=LFOH	Recd=EGGW	will try again...
OOPS! Req=LFOH	Recd=EGGW	will try again...
Gave up after 10 attempts for LFOH
OOPS! Req=LFOP	Recd=EGGW	will try again...
OOPS! Req=LFOP	Recd=EGGW	will try again...
OOPS! Req=LFOP	Recd=EGGW	will try again...
OOPS! Req=LFOP	Recd=EGGW	will try again...
OOPS! Req=LFOP	Recd=EGGW	will try again...
OOPS! Req=LFOP	Recd=EGGW	will try again...
OOPS! Req=LFOP	Recd=EGGW	will try again...
OOPS! Req=LFOP	Recd=EGGW	will try again...
OOPS! Req=LFOP	Recd=EGGW	will try again...
OOPS! Req=LFOP	Recd=EGGW	will try again...
Gave up after 10 attempts for LFOP
OOPS! Req=LFOS	Recd=EGGW	will try again...
OOPS! Req=LFOS	Recd=EGGW	will try again...
OOPS! Req=LFOS	Recd=EGGW	will try again...
OOPS! Req=LFOS	Recd=EGGW	will try again...
OOPS! Req=LFOS	Recd=EGGW	will try again...
OOPS! Req=LFOS	Recd=EGGW	will try again...
OOPS! Req=LFOS	Recd=EGGW	will try again...
OOPS! Req=LFOS	Recd=EGGW	will try again...
OOPS! Req=LFOS	Recd=EGGW	will try again...
OOPS! Req=LFOS	Recd=EGGW	will try again...
Gave up after 10 attempts for LFOS
OOPS! Req=LFRC	Recd=EGGW	will try again...
OOPS! Req=LFRC	Recd=EGGW	will try again...
OOPS! Req=LFRC	Recd=EGGW	will try again...
OOPS! Req=LFRC	Recd=EGGW	will try again...
OOPS! Req=LFRC	Recd=EGGW	will try again...
OOPS! Req=LFRC	Recd=EGGW	will try again...
OOPS! Req=LFRC	Recd=EGGW	will try again...
OOPS! Req=LFRC	Recd=EGGW	will try again...
OOPS! Req=LFRC	Recd=EGGW	will try again...
OOPS! Req=LFRC	Recd=EGGW	will try again...
Gave up after 10 attempts for LFRC
OOPS! Req=LFRG	Recd=EGGW	will try again...
OOPS! Req=LFRG	Recd=EGGW	will try again...
OOPS! Req=LFRG	Recd=EGGW	will try again...
OOPS! Req=LFRG	Recd=EGGW	will try again...
OOPS! Req=LFRG	Recd=EGGW	will try again...
OOPS! Req=LFRG	Recd=EGGW	will try again...
OOPS! Req=LFRG	Recd=EGGW	will try again...
OOPS! Req=LFRG	Recd=EGGW	will try again...
OOPS! Req=LFRG	Recd=EGGW	will try again...
OOPS! Req=LFRG	Recd=EGGW	will try again...
Gave up after 10 attempts for LFRG
OOPS! Req=LFRK	Recd=EGGW	will try again...
OOPS! Req=LFRK	Recd=EGGW	will try again...
OOPS! Req=LFRK	Recd=EGGW	will try again...
OOPS! Req=LFRK	Recd=EGGW	will try again...
OOPS! Req=LFRK	Recd=EGGW	will try again...
OOPS! Req=LFRK	Recd=EGGW	will try again...
OOPS! Req=LFRK	Recd=EGGW	will try again...
OOPS! Req=LFRK	Recd=EGGW	will try again...
OOPS! Req=LFRK	Recd=EGGW	will try again...
OOPS! Req=LFRK	Recd=EGGW	will try again...
Gave up after 10 attempts for LFRK
OOPS! Req=LFRO	Recd=EGGW	will try again...
OOPS! Req=LFRO	Recd=EGGW	will try again...
OOPS! Req=LFRO	Recd=EGGW	will try again...
OOPS! Req=LFRO	Recd=EGGW	will try again...
OOPS! Req=LFRO	Recd=EGGW	will try again...
OOPS! Req=LFRO	Recd=EGGW	will try again...
OOPS! Req=LFRO	Recd=EGGW	will try again...
OOPS! Req=LFRO	Recd=EGGW	will try again...
OOPS! Req=LFRO	Recd=EGGW	will try again...
OOPS! Req=LFRO	Recd=EGGW	will try again...
Gave up after 10 attempts for LFRO

Posted
I take the list and whizz through a loop asking the NWI for weather for each of the ICAOs. (To be be on the safe side I've put a 10ms delay between setting the ICAO/Signature and reading the weather data).

Occasionally this works but for the most part the reads return weather for the previous sucessfull ICAO. In my last test if only returned 4 weather areas from 87 ICAO codes.

It certainly sounds like you have something wrong there.
I guess my question is whether you or anyone else has stress tested the NWI before and whether they got the results they were expecting? Perhaps I'm the first to interrogate it en masse in this way

No, not at all. There have been several weather radars based on the interface. It have been around for quite a few years. I myself use SA-WXR in my cockpit for weather radar on my Project Magenta ND, and the same author sells a gauge using it.

I can't see why it would fail so randomly.

Maybe you have the handshaking wrong? Have you bothered t use the FSUIPC logging facilities, specifically provided to help you resolve this sort of thing?

ps Am enclosing source code and sample logs but am not expecting you to debug my rather messy code. Just there in case any VB programmers can spot something I've done wrong.

Not FSUIPC logs though. don't you like using FSUIPC facilities to help? I don't understand. I would have thought that would be your first port of call.

Regards

Pete

Posted
Any help, suggestions or pointers would be gratefully received, from you or anyone else out there!

I've had just a brief glance at the code. I'm no VB programmer, but it looks to me as if you are using a different signature each time. Why? To FSUIPC this makes you look like a different program, and it will lock you out for the timeout (14 secs) on the previous request. The TXT file about the NWI does explain this -- you should use your own unique signature to prevent others messing you up, but the SAME ONE for each request, or Zero if you don't care about others getting their weather (as for instance my own WeatherSet using zero).

You are also apparently checking the signature as your "handshake". Is that right? Why? Where do you get that from? As is clearly documented, the handshake back to you is a change of timestamp. You watch for that then check that the ICAO is the one you wanted. If not, it failed.

Please do read what is written in more detail. I can answer questions if you like. It would certainly be a lot easier than posting code to be looked at.

And please do use the FSUIPC logging, which would show all this stuff in no time.

Pete

Posted

Excellent thanks Peter, lots of stuff to go on there!!!

Must admit the FSUIPC logging thing simply hadn't occurred to me and I'd misunderstood the whole Signature business taking it as a call identifier not a programm identifier, my mistake.

Anyway, thanks again, will check it out again tomorrow evening,

Best as always,

Ian

Posted

Pete, this is driving me nuts.

I've gone back to basics and set up a simple test: I have an 8 byte linkage area that I populate with the ICAO + signature. I open FSInterrogate and set the auto-refresh running and - just to be on the safe side - wait for the 8 bytes at CC04 to go to nulls then I fire off my write process to set CC04 to the signature and CC08 to the ICAO.

But however many times I try this the signature is set but the ICAO either remains at nulls or is set to another weather station. I've tried with 0 as the signature - same thing. I've tried and array of four bytes in my ICAO udt and I've tried "string * 4" as the data type. No luck. I simply don't seem to be able to convince FSUIPC to accept my ICAO.

Do you have any working source I can look at, mine clearly doesn't do the job???

       
    Private Type T_Wx_Key
        lSignature          As Long          
        ICAO(1 To 4)        As Byte
    End Type

    Dim mWxKey  As T_Wx_Key

    Const cWxGet = &HCC00& 

    mWxKey.ICAO(1) = Asc(Mid$(pICAO, 1, 1))
    mWxKey.ICAO(2) = Asc(Mid$(pICAO, 2, 1))
    mWxKey.ICAO(3) = Asc(Mid$(pICAO, 3, 1))
    mWxKey.ICAO(4) = Asc(Mid$(pICAO, 4, 1))
    mWxKey.lSignature = mApplicationKey

    If FSUIPC_Write(cWxGet + 4, 8, VarPtr(mWxKey), pdRC) = False Then
        mLog.WriteLog "Failed to write key for " & pICAO & "/" & mApplicationKey
        Exit Sub
    End If
    If FSUIPC_Process(pdRC) = False Then
        mLog.WriteLog "Process call failed for key write for " & pICAO & "/" & mApplicationKey
        Exit Sub
    End If


I'd appreciate anything you can suggest but don't expect you to debug my code. I'm pulling my hair out, and at my age that's just plain wasteful.

The following log is from FSUIPC during one pass of this simple test (probably goes without saying I'm using real weather). I've had to chop out lots of Read info because of forum size restriction but the interesting bits (to me at least) are still there.

********* FSUIPC4, Version 4.333 by Pete Dowson *********
User Name="Ian Niblo"
User Addr="my.shopping@blueyonder.co.uk"
FSUIPC4 Key is provided
WideFS7 Key is provided
[Continuation log requested by user]
Running inside FSX (SimConnect Acc/SP2 Oct07)
Module base=61000000
Wind smoothing fix is fully installed
 24311094 System time = 16:39:49, FSX time = 19:12:51 (18:12Z)
 24311094 LogOptions changed, now 00000000 0000000F
'
'
'
 24315656 WRITEex CC04,   8 bytes: D6 20 04 00 45 47 4C 4C                          . ..EGLL
 24315688  READ0  3364,   1 bytes: 00                                               .
 24315688  READ0  3365,   1 bytes: 00                                               .
 24315688  READ0  0264,   2 bytes: 00 00                                            ..
'
'
'                                           ..
 24315766 Weather Read request (At Station) to area 3: ICAO="EGLL", Req=0
'
'
'
 24316125 Weather Read request (Nr Station) to area 5: Lat=51.48, Lon=-0.49, Alt=0.0, Req=1
'
'
'
'
 24318297 Weather Read request (At Aircrft) to area 4: Lat=51.48, Lon=-0.49, Alt=28.3, Req=2
 24318297 Weather Received (type 4 request, Interpolated): "????&A0 131812Z 35900KT&D984NG 4828&B0&D2599 8CB049&CB003FNDR000N 14/04 Q1013 "
 24318297 WX Received in 0 mSecs, WX request type 4, Lat=51.4775, Lon=-0.4881, Alt=28.3m
'
'
'
'
 24319453 WX Error: timed out, WX request type 3, ICAO=EGLL

Ian

Posted

But however many times I try this the signature is set but the ICAO either remains at nulls or is set to another weather station.

I'd need to see the logging. Set IPC read and write logging and also Weather logging. Do one test which doesn't work, and show me, or send me (petedowson@btconnect.com) the ZIPPED log.

Do you have any working source I can look at, mine clearly doesn't do the job???

First, with the logging enabled, try reading a specific ICAO of your choice using WeatherSet2. That uses the NWI. (WeatherSet, the original, uses the older AWI).

The following log is from FSUIPC during one pass of this simple test (probably goes without saying I'm using real weather). I've had to chop out lots of Read info because of forum size restriction but the interesting bits (to me at least) are still there.

Sorry, before I look at anything at all, please update your FSUIPC to a supported version. 4.40 is the minimum I will deal with -- that's been available since the middle of November 2008.

However, just a quickie: your read request for EGLL seems to have been recognised. but fails to get any response from SimConnect:

24315766 Weather Read request (At Station) to area 3: ICAO="EGLL", Req=0

24319453 WX Error: timed out, WX request type 3, ICAO=EGLL

Not seen one of those errors for a long time -- FSX Simconnect since SP2/Acceleration has been pretty responsive.

Pete

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use. Guidelines Privacy Policy We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.