I remember someone else had that kind of problem long time ago. He was using normal (non-dedicated) server. Didn't figure out, why this was occurring tho, usually this doesn't matter...
This is not enough, some commands do not work anymore, so you need version 3.8 AND also replace all car names in PB.txt with short car name (use an editor capable of replacing text), if you want to keep old records.
Actually, resolving errors in binary CGI is pain in the behind, cause all you get is 500 internal server error . True, it is much faster and uses less resources (specially if written in assembly language)...
so you can experiment without having Linux installed. If your source is correct, you will be able to download compile.cgi (rename it to proper name - WebStats.cgi), if not, you will get error output from compiler.
It's a slow machine, so compiling may take a while...
I think it was suggested one time before, but I can't see it in list.
I use switching between full screen <-> window a lot, and I know I am not the only one . It's quite annoying to resize and set position of window every time...
It's a binary. It must be uploaded to server that way. In ASCII mode it gets corrupted. And I don't see first line (Content-type: text/html) in your console output . Yes, it has to have executing permission for all users (755) like your support said.
If you can send source to me, I can compile it on my Linux machine and see if it works...
You compiled source on your Windows machine and then uploaded cgi to their Linux Web server ? Are you sure the compiled binary is for Linux. I have a feeling you compiled for windows (that would explain why you can run it on windows)...
Here is WebStats.cgi (zipped) again, this time statically linked, to avoid library mismatch problems. Upload it to linux server as BINARY.
Your version of g++ probably links with static library. If I compile with:
g++ main.cpp -o WebStats.cgi --static
I get 1.2M file
with stripping symbols and optimization (g++ main.cpp -s -O3 -o WebStats.cgi --static) I get 889K file.
However by default my g++ uses dynamic linking(g++ main.cpp -s -O3 -o WebStats.cgi), and in this case result is 57K file (but you need libraries to run it).
You can check with ldd, if executable is dynamic executable:
But that really doesn't matter . It should work in both cases.
You can check if it works by running it:
./WebStats.cgi
it should print on console:
Content-type: text/html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.or g/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"><head><title>LFSLapper WebStats</titl e><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /></head><b ody bgcolor="gray"> <p>Could not open file PB.txt</p> </body></html>
If you made changes to main.cpp, and then you get internal server error 500 (but original unmodified version of WebStats works), then you screwed up something in source...
Visual Studio (Visual C++ actually) can not compile source into Linux executable (it is not a cross compiler). I suggest you compile source on Linux with g++. It very probably comes installed along with your Linux distribution. You just have to compile main.cpp into executable and rename it into cgi (makefile is already provided for convenience, but if you don't have it installed, you can compile with g++ main.cpp -o WebStats.cgi).
When player times out, LFS could output InSim packet (PTO?), instead of writing language dependent message "nick timed out". Not directly related to InSim, but WRONG WAY (and flags) message is really annoying, cannot be turned off, and it cannot be overwritten with rcm message (option somewhere in menu to disable all these default center messages (but still allowing custom rcm messages) would be great). I would suggest packet for notifying about resetting player's car, but in next? patch not allowing reset will be possible, so this is not necessary . Otherwise, most important are pitting messages already described by above posts .
Anyone knows what happens (from InSim POV) when car is being taken over ? Same packet is received as for renaming. But what happens with uniqueids of both players ? I know, I could investigate this myself, but if someone overcame the problem, no point in spending time on it . How to detect this ? Compare if nickname is already used (if it is not, it is casual renaming, otherwise take over)?
Serial port is completely different animal than LPT. You can control(read) LPT pins directly, but with serial port you need a controller (com port only has 1 line for reading (Rx) and one for writing (Tx) (actually it has other lines, but are pretty much useless), so controller must deal with assembling those bits together, put bytes into fifo queue, synchronizing all the stuff, generate irqs, etc... There are ICs that do that for you, but it still may prove to be little more annoying than you think it is...
If you only need one signal line you can get away with it easily: just use one of the control signals such as DTR... (beware: you are dealing with 12V here)
You can customize settings by modifying lfslapper.cfg in cfg directory.
You can lower max split times to do that, note that this is public message and can be annoying if it pops up everytime someone passes split line...
It is intended only for very good splits.
In 3.6 version you have another option to do private messages of splits (check end of LFSLapper thread)
Tnx for sharing. I thought that could be the reason. I will spend some more time on it too, cause it's a nice language. But I am already missing GUI library in phobos. As long as there is no portable GUI, I will have to stick with java, which unfortunately feels so slugish (which is weird, cause C# on the other hand seems more responsive, even if tests show, it's not any faster).
And as angry angel says, namespaces are a bit messy (slowly getting used to it however).
Probably the cause is static linking with phobos library. If you skip the imported write function, size drops to 64k. Uhm, which is still a lot for an empty main func . Sure, managed memory and such features take their toll, but still...
Of course, if you statically link C++ code with CRT, you will also end up in 100k or even 1M file size, depends on your CRT provider...
About speed: you can't expect that language with managed memory will be faster than C (which is medium-level lang), but well optimized code could get very close...
Seems like a very nice concept. I was wondering many times why this kind of language doesn't exist yet. Something that is as productive as C#, fast as C (or even better hand-crafted asm) , and has all the standardized portable libraries you need (no such language yet or maybe java ?).
Podatki se hranijo v PB.txt. Če zbrišeš ta fajl, preden štartaš program, boš resetiral rekorde. !top brez dodatnih argumentov ti izpiše čase za privzet avto (ki je XRT). Za XF GTI lahko uporabiš recimo !top XFG. Lahko tudi spremeniš privzet avto v nastavitvah (v lfslapper.cfg, oz. skripti, ki jo uporabljaš). Komande (in ostalo) imaš opisane v doc/readme.txt.
Assuming you want to use NT kernel (Windows NT/2000/XP), you first need driver to give you access to ports (at least parallel data port). Then it is just a thing of writing proper byte to that port (using outgauge functionality). This article might help:
AFAIK BFS (if you use insim functionality) and auto message (from crazyice ?) use insim, so you need insim gateway to run both at the same time. CSR is pure outgauge app, so you don't need anything (as long you don't want to run another outgauge app), you can even run it from BFS (But you will probably have to manually adjust priority in this case as BFS can't do it).