The online racing simulator
AIRIO - Advanced LFS Tracker
(2373 posts, started )
Ok, I don´t know if it is a bug, but I have problems extracting the zipped stats files Airo sends to my FTP every hour.

I always get an out of memory error if I try to extract them with this script:

<?php

$zip = new ZipArchive;
if ($zip->open('Airio.sta1.zip') === TRUE) {
$zip->extractTo('./');
$zip->close();
echo 'ok';
} else {
echo 'failed';
}


?>

I asked my hosting company if there are any restrictions on the server to prevent running this script.

They answered that the zip file is the problem: "The included values for the file size in bytes are wrong. So the function is trying to return a way too big amount of data which caused the excess of the available memory" (Sorry for bad Englisch - translated from German to English here)

Once you are back from holiday, EQWorry, it would be nice to have a look at your zip function.

EDIT:

If I download the ZIP Airio created I am able to extract it with WinRAR. Then if I zip the 4 files again using WinRAR I am also able to extract them using my script...
Now I have got the PB limit working, every minute I see these chat messages:
PB time limit applied, server is closed...
PB time limit removed, server is opened...
Should I be worried about that? It seems to be working OK.

EDIT: Back to answer my own question.
LockPrimeUsersMax= and LockPrimeUsersMin= have to be different values, otherwise it's permanently turning itself off and on.
Turkey, you're right it is strange the newer file is ignored. I wanted to have some backwards compatibility, but obviously it leads rather to confusion than advantage. In the next version I'll remove the support for old config files completely. It will make the code cleaner and the causes of Airio misbehavior more obvious as well.

Crady, I guess you're right the created ZIP file is not quite OK. It works e.g. in WinRar, but only for extraction. If you add something, the archive is suddenly broken. The problem is I use external library for creating ZIPs, so I'll need to look closer at the settings used or other available options or newer version...

Deslotted, well that constant messages are not nice, certainly. They are very probably caused by some strange server time lock settings, with the status changing every minute. Check your time lock setting in SRV file, tell me what you're using now, switch to defaults until I see what's going on there...
I hope you enjoy your holiday, EQ!

Well I would suggest to be able to select which files to be sent unpacked to FTP until you find a solution. In my case I only need the Airio.sta.un.txt file which atm is as small as the zip of all 4 status files... So the traffic won´t increase much.
Some pb.txt problems,

i got some questions, about the output from the pb.txt.

I got some problem with more people driving the same time, on the same day. but it is using a 12 hour format. ( without am / pm)

is there anyway how i can get a 24hour format out of the results.
i will give you some examples about the output.

date :
Time:

02.06.2009
01:02:58 (done in midday)
19.05.2009
05:29:00 (done in midday, i think)
06.06.2009
11:51:34 (done in the morning)

Well i hope there is a way to build around this.
About this:

# ---------------------------- Scripts ---------------------------- #

# Address of a (PHP) script to be run on every race start - string
# Airio will send the response as a typed message meaning you can
# create commands, e.g. "/msg ^3There are ^734 ^3people on chat!"
# Define more scripts by using starting/concatenating '+'. Tabs (%09)
# in response may be used for multiline output.
ScriptStart=

# Address of a (PHP) script to be run periodically - string
# Periodicity of the script in minutes - integer
ScriptTimed=
ScriptPeriod=2

Is correct this:
ScriptStart=go.php

So i want execute this script that is in the same folder of airio.
Is this possible ?
THX EQ Worry, I followed your guide line without replacing all files and everything seems to work like I want now.

I have downloaded the languages files and will see what I can do, my French is a bit rusty, thought I am one...

BTW You can now update Airio to version 2.25 on 500servers!
For me use i've done a php script that work with airio.sta.un.txt and airio.sta.cr.txt and it display in a web page the time and best time.

Did u like it ? Do u think that i need share beacuse i can help someone or not ?

- Show online time
I've been playing around with a simple Twitter PHP script and am delighted to say (for someone who doesn't consider themselves much of a coder) that I have now got Airio to send (as admin) a "tweet" whenever someone starts a race (I just put the name of the script in the ScriptStart= line). Just so that if I am at a computer I can go and check on proceedings in LFSRemote. Not an earth-shattering thing in itself but at least it works! I've suggested to EQ that Twitter would be a great way to output data from races (especially long endurance ones, say, a tweet every 50 laps with the details of the top 3) - and maybe other stuff, fastest laps, retirements etc., so hopefully that function can be provided in due course. There are limitations on the length of message (140 characters) and calls per hour, but at least it seems do-able.
EQ Worry can i "limit" the data exportation to airio. UN e CR .txt to some username ?
There is a filter ?
Ok... just an other suggestion to throw in...

It would be nice to be able to just show only good/great splits or only sectors or both - just as you want...


If you have seceted them to be shown now and you have a lot of good racers online there might be plenty of lines of text...

But there might be a problem where to add an other button...

EDIT:

Perhaps you can devide the "good/great times" button in to two small ones??
@ Hotmail : Ah, you're right about the times, my bad. 2.2.6 contains a fix, time is exported in 24 hour format.

@ Michele : To say the truth, I'm not sure the PHP script will work if specified this way, I'm really not sure. I'd expect a Web address there, but maybe if the local system is configured in some way to handle PHP files. About sharing the script, it is always great to have something to start with. And about export filter, there is no such thing, export to PB.txt (Lapper) file is always complete.

@ Framaris : Cool it works and LOL at your rusty French. As for 500servers, I'm not the one updating Airio there, I believe Franky does that when somebody requests an update. I guess I'll try to contact him and come up with some better arrangement so that the updates are available sooner.

@ Deslotted : Very nice, I've been playing with a Twitter library a bit, some basic updates are working in 2.2.6 being prepared now. But I'm thinking about just updating certain entries (such as who is online now, and what is the current server state), not creating new ones. This would require more testing though and also seeing what the "spamming" limits are.

@ Crady : Yup, you're right, not everyone is interested in both split and sector data. I'll see what can be done about it, a multifunction button comes to mind, turning on both, just splits, just sectors, and none...
Quote :@ Framaris : Cool it works and LOL at your rusty French. As for 500servers, I'm not the one updating Airio there, I believe Franky does that when somebody requests an update. I guess I'll try to contact him and come up with some better arrangement so that the updates are available sooner.

Hehe, I know I had a talk with Franky about it and he is aware of the problem now, would be nice if you find an arrangement with him.

I had a look at the new file structure and I will follow your advise and replace it...when I have the time...

For the translation, I was afraid I would set it aside and forget it, so I have started a topic on our team forum to work on it with our French members Here http://www.ready2rollteam.com/ ... wtopic.php?f=14&t=144

If some French english speaker read this and feels like helping us, you're more than welcome! Together I'm sure we'll make something good!
Ok... I was just playing around with the Nickname filter...

Err...

Does it work for Jap/Chin etc. characters too? If I set all team mates to a limad level and copy/past our team Tag to PName=xxx I am able to connect although I deleted my own limad level and I also did not connect with with the admin pass...

If I delete the jap character and the colour of our Tag too the filter works.

Question 2:

How does Airio behave in the following:

We have 8 servers, 4 are at one blade (same IP, 4 different ports) and 4 on an other blade (same IP, 4 different ports). If we connect Airio to all 8 servers and one blade goes offline for some reason... Does Airio still work for the 4 remaining servers?

Another suggestion:

It is possible to disallow more than one connection from one IP. Would it also be possible to ban a player by IP? You know in Demo you can get thousands of licences... So a ban does not work here as it should...

Ok.. changing the IP is easy too.. But perhaps it helps keeping our servers clean if it is possible to store the IP of a banned guy for 24 hours...

Suggestion 2:

It is possible to define custom settings for each server by using Airio.serv.1.txt etc. ... It would be nice to use the same with the Airio.cfg.txt and Airio.tcd.txt too...

So I would be able to e.g. define a limad only for one Server (e.g. to help us as a Marshal during an event). Or I would be able to define another spin control at the "advanced" servers than at the "beginner" servers...
I may have found a little bug, I was playing with restrictions on FXR, when set to 26% cars can enter with 23% (not 24 or 22, only 23). Other GTR's don't suffer from this so that's why I'm posting it here.
Quote from Crady :Ok... I was just playing around with the Nickname filter... Err...Does it work for Jap/Chin etc. characters too? If I set all team mates to a limad level and copy/past our team Tag to PName=xxx I am able to connect although I deleted my own limad level and I also did not connect with with the admin pass...

Well, I would not be surprised if it won't work with Asian characters. Airio currently does not convert any Asian characters to Unicode, it leaves them in the original form. So, you may try to copy the team tag as it appears in Airio log file and see if that works.

Quote from Crady :We have 8 servers, 4 are at one blade (same IP, 4 different ports) and 4 on an other blade (same IP, 4 different ports). If we connect Airio to all 8 servers and one blade goes offline for some reason... Does Airio still work for the 4 remaining servers?

I'm not sure what "blade" is here, but I get the meaning. Basically, Airio manages each connection to server individually, regardless of all other connections. A server (or group of servers) goes offline, their connections will close, the remaining will go on unperturbed. All connections may be broken, Airio would still run. With current state of things Airio will try to connect back to each disconnected server every 5 minutes, until the appropriate CON file is removed and the LFS server is back online and reachable. I may change this though to give it like 3 reconnect attempts andthen give up.

Quote from Crady :It is possible to disallow more than one connection from one IP. Would it also be possible to ban a player by IP? You know in Demo you can get thousands of licences... So a ban does not work here as it should... Ok.. changing the IP is easy too.. But perhaps it helps keeping our servers clean if it is possible to store the IP of a banned guy for 24 hours...

For anyone interested you should know the IP capturing is supported in FULL version only. I've been thinking about banning by IP several times, for now always shrinking away from the idea. Until patch Z the banning (and kicking) was done in demo using IP only, but it lead to unwelcome behavior, when wrong people were kicked (just because they used the same IP) and several drivers using the same provider (and one shared IP) were banned at once. Try running the doubled IP address filter and see in how many kicks this results, how many addresses are shared. Basically, I see banning by IP as giving more troubles than advantages.

Quote from Crady :It is possible to define custom settings for each server by using Airio.serv.1.txt etc. ... It would be nice to use the same with the Airio.cfg.txt and Airio.tcd.txt too... So I would be able to e.g. define a limad only for one Server (e.g. to help us as a Marshal during an event). Or I would be able to define another spin control at the "advanced" servers than at the "beginner" servers...

With many items in CFG file this is clearly not possible, because they cover things common to the running instance, such as stats handling, external communications, language filter. With other items there it may be possible, but I fear it would complicate the setup. For example having different limads on different servers may be sometines desired, but it is really rather an exception. By definition the CFG file contains items common to one running instance, any server-depentant items would need to be moved to SRV file which is quite large even as it is.

With the TCD file the situation is somewhat similar, because they are track/car data common to the running instance. You may certainly see that having absolute freedom with the option to define these things differently on every server may be needed sometimes, but I wouldn't want to solve the configuration issues resulting from this. In case of step spin detection you mention you always have the option to activate that filter on one server and deactivate on another. But you're right, you cannot have two different values currently.

I'll give the TCD file yet some thought, see what items can be doubled in SRV file (such as DefaultCar is). I also feel some SRV items should be actually track/car dependant, e.g. to allow giving more points for driving with more demanding cars...

Quote from Framaris :I may have found a little bug, I was playing with restrictions on FXR, when set to 26% cars can enter with 23% (not 24 or 22, only 23). Other GTR's don't suffer from this so that's why I'm posting it here.

Hmmm, this look rather like incorrect configuration in the TCD file, with old value still applied somehow. Or it is because that FXR is then seen as FX2, one of the default-defined custom cars. Either remove that definition or disallow FX2 on appropriate server.
I have one question to the Airio.set.1.txt file:

If I understood it right I am able to load the settings in this file by typing !si.

The settings of THIS file are going to server 1 and they are version 0 of a settings file, right?

Is this the same file that is loaded if I turn on the EndResetTime? - I guess so!

Well we have activated a Track rotation with several tracks, but we often change the track manually. If we choose a track that is not in our rotation list, the rotation stops. - OK!

So I set EndResetTime=30 and added the command /track=as2 into the Airio.set.1.txt.

But If I connect to our server - and it was empty the last hours - another track is active... and the Quali time I set by /qual=10 is something different too.
Airio 2.2.6 is released, containing some of the above mentioned fixes (timed messages, format of exported time, ZIP library used). New is !results or just !rs command showing last race results by car categories. It is also possible now to use IncludeFile directive in SRV and CFG files allowing config file customizations. Completely removed is support for 2.1.8 and lower versions configuration files (such as Airio.cfg.nc.txt, Airio.cfg.lc.txt, and Airio.cfg.tc.txt). These are completely ignored to address some confusion and unexpected behavior. See the changelog for more information.

Quote from Crady :I have one question to the Airio.set.1.txt file: ... But If I connect to our server - and it was empty the last hours - another track is active... and the Quali time I set by /qual=10 is something different too.

All your suppositions are correct, I believe. The timer to call default server SET file starts when last driver disconnects. So if that server was empty when you did the config changes, the timer never starts and never calls the SET file. Try connecting there, disconnecting and watch Airio system log. This feature should work, it did last time I checked.
If i try to start Airio in a Linux Machine i receive this.
Why ?

** (Airio.exe:6016): WARNING **: Missing method System.DateTime::FromBinary(long) in assembly /usr/lib/mono/2.0/mscorlib.dll, referenced in assembly /home/users/plz/LFS/Airio 226/Airio.exe
ERROR: 09.06.15.10.27.02 - Method not found: 'System.DateTime.FromBinary'.
plz@PLZ-Debian-srv1:~/LFS/Airio 226$
Quote from michele0676 :If i try to start Airio in a Linux Machine i receive this. Why ? ** (Airio.exe:6016): WARNING **: Missing method System.DateTime::FromBinary(long) in assembly /usr/lib/mono/2.0/mscorlib.dll, referenced in assembly /home/users/plz/LFS/Airio 226/Airio.exe
ERROR: 09.06.15.10.27.02 - Method not found: 'System.DateTime.FromBinary'.
plz@PLZ-Debian-srv1:~/LFS/Airio 226$

Well, I'm not a Linux guru, but the FromBinary method is in Airio for many months now and nobody reported troubles with that. So my guess would be you need to add some other Mono packages or update Mono. People running Airio under Linux use these mono packages: mono-runtime, libmono-corlib2.0-cil, libmono-system2.0-cil. I hope this helps...
@ michele0676: if your problem will not solved, please post what mono packages you have installed.
This is the mono version in my machine.
Is it "bad" ?

Mono JIT compiler version 1.2.2.1, (C) 2002-2006 Novell, Inc and Contributors. www.mono-project.com
TLS: normal
GC: Included Boehm (with typed GC)
SIGSEGV: normal
Disabled: none
Quote from michele0676 :This is the mono version in my machine.
Is it "bad" ?

Mono JIT compiler version 1.2.2.1, (C) 2002-2006 Novell, Inc and Contributors. www.mono-project.com
TLS: normal
GC: Included Boehm (with typed GC)
SIGSEGV: normal
Disabled: none

That's why I love Linux - answer will always be surprise

Please run this command in terminal and post output:
dpkg --get-selections | grep mono

Thanks for help:
Here the output:

plz@PLZ-Debian-srv1:~$ dpkg --get-selections | grep mono
libmono-corlib1.0-cil install
libmono-corlib2.0-cil install
libmono-data-tds1.0-cil install
libmono-data-tds2.0-cil install
libmono-microsoft7.0-cil install
libmono-microsoft8.0-cil install
libmono-peapi1.0-cil install
libmono-relaxng1.0-cil install
libmono-security1.0-cil install
libmono-security2.0-cil install
libmono-sharpzip0.84-cil install
libmono-sharpzip2.84-cil install
libmono-system-data1.0-cil install
libmono-system-data2.0-cil install
libmono-system-runtime1.0-cil install
libmono-system-web1.0-cil install
libmono-system-web2.0-cil install
libmono-system1.0-cil install
libmono-system2.0-cil install
libmono0 install
libmono1.0-cil install
libmono2.0-cil install
mono install
mono-common install
mono-gac install
mono-jit install
mono-mcs install
mono-runtime install
mono-utils install
Well, the most simplest answer is that your Mono is outdated. I'm running Ubuntu Jaunty (9.04) and it has Mono (mono-jit package) version 2.0.1-4. You may take a look here for Debian repositories with fresh Mono.

Good luck

PS: Perhaps, the minimal version of Mono to run Airio without problem is 1.9.1

AIRIO - Advanced LFS Tracker
(2373 posts, started )
FGED GREDG RDFGDR GSFDG