Simulator maintenance

September 25th, 2006

Redid the physics part of the simulator. Now implemented with consideration of forces, instead of the pseudo realistic implementation. This will allow us to create more accurate simulations, in particular when we get interested in creating better simulations of inclining surfaces.
Also fixed some network connectivity bugs in the GUI.

Simulator working

September 22nd, 2006

We now have the simulator working. Screenshots will follow.
Also switched from a mix of floats and doubles to using doubles consistently.
If this has a negative effect performance-wise, a move to floats would be the solution.
Here’s a screenshot: The GUI

GUI programming

September 21st, 2006

Today we worked on the socket interface on both ends. Also started on the simulation GUI which is to be integrated with the current GUI for viewing the game status.

Networking

September 20th, 2006

It turns up that making the network thing work correctly isn’t that easy. When the client is connected and the server quits, the recv call doesn’t terminate even though we send a signal to the thread.

However, when the client resets the connection (by quitting without disconnecting the proper way), the recv call terminates and sets errno to ECONNRESET.

Both cases should be handled correctly by the threads and the socket class. This includes joining the threads because one of the threads segfaults otherwise. Perhaps using different exception classes for different conditions (e.g. ECONNRESET) is a viable solution.

Apart from diagnosing this problem, a simple simulation was made to work today. It just moves the ball from side to side on the table.

Two-way conversations are more fun

September 18th, 2006

Today we continued our work on the simulator. The user interface is now two-ways on the server-side, since we are planning on using the client GUI as a UI for the simulator. Which means setting the ball position. In practice this was accomplished by using two threads instead of one, because the socket implementation we are using doesn’t allow non-blocking receive calls.

Random coding

September 14th, 2006

Today we didn’t accomplish a whole lot. The debugging system in the AI program has been renamed to “Logger” and is now improved by having different logging levels. A lot more info is now being logged.

We looked around for the client program for a while but couldn’t find the latest version. An older version was recovered though, and it turned out to work after a few adjustments. Did you know that when converting strings to floats in C#, you have to provide formatting info, telling the framework whether you’re using a comma or a dot as the decimal separator? Well, it does. And if you don’t provide it, it will take a guess based on your OS setting. If the guess is wrong (say, trying to convert “1.23″ but using a comma as the separator), the conversion fails silently. That’s kind of nice to know I think.

Our computer turns out not to be too stable – sometimes it just hangs and a reboot is necessary. It’s a bit weird since it’s a fresh installation. Perhaps it has to do with the image it was installed from, not being completely compatible with the hardware?

September 13th, 2006

Got the new machine today. Also made the sshmount program work using ethernet connection, so now we have two workstations. Fixed the rotation MC so it doesn’t oscillate at the wanted position. Decided to use ifdef’s instead of interfaces to implement the simulator.

One of these days…

September 11th, 2006

Ordered a 64-bit machine with VS 2005 and AVR Studio for delivery wednesday. Found a tool for mounting sftp connections as network drives for my mac. Unfortunately there seems too be a connection problem at our desk when running windows through parallels, every fifth package is lost when pinging, making it impossible to use the sftp mounting program.
This problem is probably fixable if a wirebased connection could be obtained. We might have to dual-boot into windows using boot camp, since that also solves the problem. It would be nice using parallels though, dual-booting is never a fantastic solution.
Also tampered with the MC software for the rotation, trying to minimize the area of slack (where the mc software thinks its close enough to the desired position), but unsuccesfully.

Preliminary stuff

September 8th, 2006

Installed VS 2005 on my macbook pro. Created a map of the entire AI app. Also created some interfaces to allow easy swaps of classes which are needed when the simulator of the table is complete.

Technology showoff

September 8th, 2006

Shot of the table
YouTube Preview Image