Journal
February 1, 2012:
I have begun to research Android. I'm learning what it is, how it works, how to use Eclipse to program. I need to look into the Java language as well since it is the language Android uses for development. I'm going to work on the train tomorrow and hopefully become aware of how the train works and the client and server that previous students have made for the trains. I'm also planning on looking into how Brice was connecting the laptop over wireless to the server so that I can find a feasible way to connect the trains over the Android application. A lot of research is being done and needs to be done in the near future before I can think of how to plan the code and design to work.
Things to do:
- Research wireless over the phone's system to connect to the server
- Create a beginning Android application to become familiar with it ("Hello World")
- Work with the trains to become familiar with the set up and the system currently in place
I have begun to research Android. I'm learning what it is, how it works, how to use Eclipse to program. I need to look into the Java language as well since it is the language Android uses for development. I'm going to work on the train tomorrow and hopefully become aware of how the train works and the client and server that previous students have made for the trains. I'm also planning on looking into how Brice was connecting the laptop over wireless to the server so that I can find a feasible way to connect the trains over the Android application. A lot of research is being done and needs to be done in the near future before I can think of how to plan the code and design to work.
Things to do:
- Research wireless over the phone's system to connect to the server
- Create a beginning Android application to become familiar with it ("Hello World")
- Work with the trains to become familiar with the set up and the system currently in place
February 12, 2012:
This week I got together with Kayla Pope and Dr. Pankratz to put the trains together. We had problems getting power to the table and will need to get that fixed to test the current server and client with the trains to make sure everything is working correctly. I also found out that sockets are possible with Android, which is what I believe Brice Higlemann used to connect to the server for the trains. This makes it easier to match what he has already done so that I can connect to different trains in the same manner. I also got two different helloWorld applications created with Android. One was very simplistic to get an app to run using the PC testing capabilities so that the applications don't have to be downloaded to the phone for each test of the code. The other application was one that allowed me to deal with text boxes, buttons, spinners (drop down boxes), different layouts (Relative vs. Linear), and sounds. I used Eclipse Indigo to create the applications. For future Android developers, be prepared to spend a lot of time getting the downloads. It took a few hours to get Eclipse, the SDK, the JDK (Java Developer Kit), ADTs (Andorid Development Tools), and adding the platforms that I chose. I downloaded Android 2.2 and Android 2.3.3 since these are the two highest versions of Android 2 which is the version that is typically on phones. This would allow the people in the presentation with access to Android to be able to use it themselves and test it. I also downloaded platforms for Motorola and specifically the Photon since this is the kind of phone that I have and will most likely test on.
I found Eclipse to be very helpful in using Java in relation to Android applications. It is very similar to Microsoft Visual Studio with the C# platform. Drag and drop capabilities are there as well as the events/activities have to be programmed in relation to the objects on the form. I will need a little bit more knowledge on Java and how its classes and files are set up to make sure I implement things correctly. I think it will be a lot of hit and miss when programming the trains with Android.
Things to do:
- Research sockets to begin trying to connect to the trains' server.
- Begin design for the CAB on the application to be able to add events later.
- Continue working with the trains to get them running with their current system
- Continue researching Brice Higlemann's methods on passing information in his code.
This week I got together with Kayla Pope and Dr. Pankratz to put the trains together. We had problems getting power to the table and will need to get that fixed to test the current server and client with the trains to make sure everything is working correctly. I also found out that sockets are possible with Android, which is what I believe Brice Higlemann used to connect to the server for the trains. This makes it easier to match what he has already done so that I can connect to different trains in the same manner. I also got two different helloWorld applications created with Android. One was very simplistic to get an app to run using the PC testing capabilities so that the applications don't have to be downloaded to the phone for each test of the code. The other application was one that allowed me to deal with text boxes, buttons, spinners (drop down boxes), different layouts (Relative vs. Linear), and sounds. I used Eclipse Indigo to create the applications. For future Android developers, be prepared to spend a lot of time getting the downloads. It took a few hours to get Eclipse, the SDK, the JDK (Java Developer Kit), ADTs (Andorid Development Tools), and adding the platforms that I chose. I downloaded Android 2.2 and Android 2.3.3 since these are the two highest versions of Android 2 which is the version that is typically on phones. This would allow the people in the presentation with access to Android to be able to use it themselves and test it. I also downloaded platforms for Motorola and specifically the Photon since this is the kind of phone that I have and will most likely test on.
I found Eclipse to be very helpful in using Java in relation to Android applications. It is very similar to Microsoft Visual Studio with the C# platform. Drag and drop capabilities are there as well as the events/activities have to be programmed in relation to the objects on the form. I will need a little bit more knowledge on Java and how its classes and files are set up to make sure I implement things correctly. I think it will be a lot of hit and miss when programming the trains with Android.
Things to do:
- Research sockets to begin trying to connect to the trains' server.
- Begin design for the CAB on the application to be able to add events later.
- Continue working with the trains to get them running with their current system
- Continue researching Brice Higlemann's methods on passing information in his code.
February 19, 2012:
This week was a little hectic for me. I didn't get as much done as I would have liked. I did get the chance to research sockets and found some examples in Java. I also printed off Brice's code from both his client and his server and began trying to find where he was communicating with the server and the information that was being passed between them. I would have liked to have been able to begin building a socket to get the application to connect to but that will have to get done this week. That leaves me with things to do.
Things to do:
- Build a socket between the application and a computer.
- Begin designing the interface of the application.
- Continue to work on the trains to get them up and running. (There was a short in the table and Dr. Pankratz is trying to get power back to the table)
This week was a little hectic for me. I didn't get as much done as I would have liked. I did get the chance to research sockets and found some examples in Java. I also printed off Brice's code from both his client and his server and began trying to find where he was communicating with the server and the information that was being passed between them. I would have liked to have been able to begin building a socket to get the application to connect to but that will have to get done this week. That leaves me with things to do.
Things to do:
- Build a socket between the application and a computer.
- Begin designing the interface of the application.
- Continue to work on the trains to get them up and running. (There was a short in the table and Dr. Pankratz is trying to get power back to the table)
February 26, 2012:
This week I did a lot of research on sockets and how they work. I now have a couple different sources to refer to when trying to build them and understand what they do. I used a combination of code from a website, Brice's simple asynchronous sockets for both the client and the server, and from the textbook that is currently being used for the Intro to Operating Systems for this semester to attempt to build a socket to connect from the emulator to the server on the same computer. I ran into problems getting Brice's server and client to connect to each other on my laptop and therefore couldn't get the emulator to connect to the server either. I did find specific IP addresses to use if the application is being tested in the emulator or on a phone for general use to get them to connect. My simple socket program was to create a connection with a server and display a dialog box if the connection was successful using a try and catch. However, I couldn't get either clients (Brice's or mine) to connect and will therefore have to troubleshoot this week to create a connection to the emulator and begin to send and receive information through the socket.
On the other hand, I am growing more comfortable with java and the assistance of Eclipse is very similar to Visual Studio with C# (I know I have said this before). I now have realized that Eclipse gives the function options when a '.' is entered after a class. Also, when classes are not included that are needed, an error will show by underlining the entry in red and then an import option will import the class with the correct include statements at the top of the file. The downside of Eclipse is still its time consumption. Eclipse takes a long time to load for different reasons and the emulator takes a long time to get running. It is comparable to how slow Visual Studio was in the lab last semester (very slow... that darn toolbox!). So I'm becoming more comfortable with Eclipse and Java.
This week I'm meeting with Dr. Pankratz and Dr. McVey to go over the data structures of Brice's server so that it can be better understood what his code is accomplishing. The good news is Dr. Pankratz got power running to the table again and a train moved! Hopefully we will get a computer up soon and be able to play!
Things to do:
- get information passed and received across the socket
- draw up layouts for the design and find images that are useful for buttons
- try downloading a test app to the phone to better understand .apk and how it affects the phone
This week I did a lot of research on sockets and how they work. I now have a couple different sources to refer to when trying to build them and understand what they do. I used a combination of code from a website, Brice's simple asynchronous sockets for both the client and the server, and from the textbook that is currently being used for the Intro to Operating Systems for this semester to attempt to build a socket to connect from the emulator to the server on the same computer. I ran into problems getting Brice's server and client to connect to each other on my laptop and therefore couldn't get the emulator to connect to the server either. I did find specific IP addresses to use if the application is being tested in the emulator or on a phone for general use to get them to connect. My simple socket program was to create a connection with a server and display a dialog box if the connection was successful using a try and catch. However, I couldn't get either clients (Brice's or mine) to connect and will therefore have to troubleshoot this week to create a connection to the emulator and begin to send and receive information through the socket.
On the other hand, I am growing more comfortable with java and the assistance of Eclipse is very similar to Visual Studio with C# (I know I have said this before). I now have realized that Eclipse gives the function options when a '.' is entered after a class. Also, when classes are not included that are needed, an error will show by underlining the entry in red and then an import option will import the class with the correct include statements at the top of the file. The downside of Eclipse is still its time consumption. Eclipse takes a long time to load for different reasons and the emulator takes a long time to get running. It is comparable to how slow Visual Studio was in the lab last semester (very slow... that darn toolbox!). So I'm becoming more comfortable with Eclipse and Java.
This week I'm meeting with Dr. Pankratz and Dr. McVey to go over the data structures of Brice's server so that it can be better understood what his code is accomplishing. The good news is Dr. Pankratz got power running to the table again and a train moved! Hopefully we will get a computer up soon and be able to play!
Things to do:
- get information passed and received across the socket
- draw up layouts for the design and find images that are useful for buttons
- try downloading a test app to the phone to better understand .apk and how it affects the phone
March 4, 2012:
I got to play with the trains this week! That was exciting to get to see how they work. A few joints in the track need to be redone so that the trains don't derail every time they move to a different part of the table. Also, I got a socket to connect to C# but when a message was sent back there was an error in the application that makes it force close every time. However, the connection was initially made and can be seen in the server. I also found an example of a Java server that runs in console mode that I implemented. This server when ran with the application connected and would allow me to send messages to it and would initially send a "hello" message back. This server didn't make the application force close and worked nicely. So I need to find how to get the application to communicate correctly with C# so that messages can be sent and received. I also was able to download the SocketExample application that I created onto my phone and connect and test it with the servers this way. I found that the easiest way for my Motorola Electrify to download a .apk file was to install it from being sent to my Google email account. Sending it to any other email account wouldn't give me the install option. There were many other ways to install them that I found online but this seemed to be the easiest.
Things to do:
- get the socket working with C#
- fix the train tracks
- get into Brice's code to see what different messages are for the trains
I got to play with the trains this week! That was exciting to get to see how they work. A few joints in the track need to be redone so that the trains don't derail every time they move to a different part of the table. Also, I got a socket to connect to C# but when a message was sent back there was an error in the application that makes it force close every time. However, the connection was initially made and can be seen in the server. I also found an example of a Java server that runs in console mode that I implemented. This server when ran with the application connected and would allow me to send messages to it and would initially send a "hello" message back. This server didn't make the application force close and worked nicely. So I need to find how to get the application to communicate correctly with C# so that messages can be sent and received. I also was able to download the SocketExample application that I created onto my phone and connect and test it with the servers this way. I found that the easiest way for my Motorola Electrify to download a .apk file was to install it from being sent to my Google email account. Sending it to any other email account wouldn't give me the install option. There were many other ways to install them that I found online but this seemed to be the easiest.
Things to do:
- get the socket working with C#
- fix the train tracks
- get into Brice's code to see what different messages are for the trains
March 25, 2012:
I took the week off for spring break. Had a nice relaxing time with the nice weather here in Wisconsin. Going back to school though brought back needing to get some things accomplished. I'm still having problems getting the socket to read from a C# server, but am in the process of building threads to anchor the socket since Android likes to kill things that take to long to respond and use the CPU for too long as security against viruses. On the other hand, I got Brice's server running with the track this week and it seems to be working great. Dr. Pankratz is still working on parts of the track to make sure all the turn outs are working properly and the trains won't short out at them. I also found how to catch the x, y, and z coordinates of the phone for tilt control so that I can read the tilt angle to increase or decrease speed. Right now it is stand alone application that reads back the coordinates as I move my phone. Hopefully within the next week I will have something working so that I can test it and implement the things I have so far. I have also began building the design of the application as far as buttons and the layout. I did meet with Chris Gusman this week to help with creating the threads in Java to anchor the socket since he did work with Android and sockets over the past summer. He was very informative on why to use threads with the socket and how to do so.
Things to do:
- get the socket working with threads
- try applications out on a tablet
- finish design
- if socket works, begin testing
I took the week off for spring break. Had a nice relaxing time with the nice weather here in Wisconsin. Going back to school though brought back needing to get some things accomplished. I'm still having problems getting the socket to read from a C# server, but am in the process of building threads to anchor the socket since Android likes to kill things that take to long to respond and use the CPU for too long as security against viruses. On the other hand, I got Brice's server running with the track this week and it seems to be working great. Dr. Pankratz is still working on parts of the track to make sure all the turn outs are working properly and the trains won't short out at them. I also found how to catch the x, y, and z coordinates of the phone for tilt control so that I can read the tilt angle to increase or decrease speed. Right now it is stand alone application that reads back the coordinates as I move my phone. Hopefully within the next week I will have something working so that I can test it and implement the things I have so far. I have also began building the design of the application as far as buttons and the layout. I did meet with Chris Gusman this week to help with creating the threads in Java to anchor the socket since he did work with Android and sockets over the past summer. He was very informative on why to use threads with the socket and how to do so.
Things to do:
- get the socket working with threads
- try applications out on a tablet
- finish design
- if socket works, begin testing
April 1, 2012:
I worked on getting the code written for the socket with threads this week. I have a little bit more to do to be able to test it with the server. I also am implementing the design to connect commands with the buttons as I go with the code, which is why I think it is taking longer than I thought. Hoping to get upstairs with the trains this week to practice some commands. I also got to play with a tablet this week to see how the applications I have so far work with it. The socket example crashed the same way it did when it was on my phone. Therefore, I think the socket will work on the tablet at the same time when it works with my phone. I also tested the accelerometer application that I have to read the x, y, and z coordinates of the phone and found that a tablet is oriented when it is in a landscape orientation where my phone has a portrait orientation. This means if I'm going to use the y axis like planned I will have to make sure the tablet is oriented sideways.
Things to do:
- finish writing the code
- test the application with the trains
I worked on getting the code written for the socket with threads this week. I have a little bit more to do to be able to test it with the server. I also am implementing the design to connect commands with the buttons as I go with the code, which is why I think it is taking longer than I thought. Hoping to get upstairs with the trains this week to practice some commands. I also got to play with a tablet this week to see how the applications I have so far work with it. The socket example crashed the same way it did when it was on my phone. Therefore, I think the socket will work on the tablet at the same time when it works with my phone. I also tested the accelerometer application that I have to read the x, y, and z coordinates of the phone and found that a tablet is oriented when it is in a landscape orientation where my phone has a portrait orientation. This means if I'm going to use the y axis like planned I will have to make sure the tablet is oriented sideways.
Things to do:
- finish writing the code
- test the application with the trains
April 8, 2012:
This week I worked on finishing the code based completely off of Brice's code from his server. I tried to follow his code exactly and transfer it over into Java interpreting what he did in C# and finding ways to do it in Eclipse. This wasn't as easy as I thought it would be. Brice used AsyncCallback for his sockets which is strictly found in C# so I had to find a way around this. I also found it hard to follow all of the picture boxes in Brice's code but ended up drawing myself a guide based off of a picture of his form. I finished the code without updating all of the user interface since there was a lot to do. My biggest problem was finding the way around the AsyncCallback and finding a way to use the socket effectively. I was experimenting with AsyncTask in Java but didn't get very far. I also was using the BluetoothChat example off of the developer.android.com website that allows bluetooth chat between multiple devices. Both didn't seem to get me very far. I at least go an outline of the code put together and had the design roughly set up so that I had buttons and labels to work with in the interface.
Things to do:
- Meet with Dr. Pankratz
- Get the socket working!!!
This week I worked on finishing the code based completely off of Brice's code from his server. I tried to follow his code exactly and transfer it over into Java interpreting what he did in C# and finding ways to do it in Eclipse. This wasn't as easy as I thought it would be. Brice used AsyncCallback for his sockets which is strictly found in C# so I had to find a way around this. I also found it hard to follow all of the picture boxes in Brice's code but ended up drawing myself a guide based off of a picture of his form. I finished the code without updating all of the user interface since there was a lot to do. My biggest problem was finding the way around the AsyncCallback and finding a way to use the socket effectively. I was experimenting with AsyncTask in Java but didn't get very far. I also was using the BluetoothChat example off of the developer.android.com website that allows bluetooth chat between multiple devices. Both didn't seem to get me very far. I at least go an outline of the code put together and had the design roughly set up so that I had buttons and labels to work with in the interface.
Things to do:
- Meet with Dr. Pankratz
- Get the socket working!!!
April 15, 2012:
Success!!!! I met with Dr. Pankratz on Tuesday and Wednesday to try to work with my original socket example that crashed to get it to stop crashing. I ended up implementing a thread to allow it to constantly read from the server and only write to the server when the button was clicked. I got the thread to execute and added a disconnect button. The disconnect button was necessary as well as changing the connect button to just a send button to help fix the connection. My first changes had it connecting multiple times since it would make a new connection each time the button was pressed to send the message. Then I ran into problems of it never disconnecting. So finally I made it connect when the application launched, only write to the server when the button was pressed to send the message and disconnect the input stream, output stream, and socket when the disconnect button was pressed. This allowed me to maintain an open connection, read and write when I needed to and disconnect when I was finished. The other problem I ran into was getting the messages to transfer correctly. When sending the message to the server, it wouldn't show up at all at first. Then I changed it to transfer the string from the textView into a byte array to send to the server since Brice used a byte array in his server (I was trying to connect to his Asynchronous Server he wrote in his project). This worked for sending information to the server but I was still having problems getting any messages from the server. I was trying to get anything to print in any way including to the user interface and to the Log that is available in Eclipse. I then found a way to transfer the byte array into a string and read from the server into a byte array and transferred it into a string. I found I had to clear the buffer that I was using since it kept part of the previous message if the new one was shorter. Then I had it printing in the log just fine. SUCCESS!!!! Then I began changing my final project code to use the handler idea from the bluetooth chat to pass information from the thread reading from the server to the user interface. I also adapted my new working socket into the project. I'm hoping to finish changing the buttons on the user interface to change when I want and find ways to close the application accurately to mimic Brice's code on his formClosing events. Then I really need to test the application and hope it all got put together correctly to work with the trains!
Lots to do this week to make it done. So no list, just finish it :)
Success!!!! I met with Dr. Pankratz on Tuesday and Wednesday to try to work with my original socket example that crashed to get it to stop crashing. I ended up implementing a thread to allow it to constantly read from the server and only write to the server when the button was clicked. I got the thread to execute and added a disconnect button. The disconnect button was necessary as well as changing the connect button to just a send button to help fix the connection. My first changes had it connecting multiple times since it would make a new connection each time the button was pressed to send the message. Then I ran into problems of it never disconnecting. So finally I made it connect when the application launched, only write to the server when the button was pressed to send the message and disconnect the input stream, output stream, and socket when the disconnect button was pressed. This allowed me to maintain an open connection, read and write when I needed to and disconnect when I was finished. The other problem I ran into was getting the messages to transfer correctly. When sending the message to the server, it wouldn't show up at all at first. Then I changed it to transfer the string from the textView into a byte array to send to the server since Brice used a byte array in his server (I was trying to connect to his Asynchronous Server he wrote in his project). This worked for sending information to the server but I was still having problems getting any messages from the server. I was trying to get anything to print in any way including to the user interface and to the Log that is available in Eclipse. I then found a way to transfer the byte array into a string and read from the server into a byte array and transferred it into a string. I found I had to clear the buffer that I was using since it kept part of the previous message if the new one was shorter. Then I had it printing in the log just fine. SUCCESS!!!! Then I began changing my final project code to use the handler idea from the bluetooth chat to pass information from the thread reading from the server to the user interface. I also adapted my new working socket into the project. I'm hoping to finish changing the buttons on the user interface to change when I want and find ways to close the application accurately to mimic Brice's code on his formClosing events. Then I really need to test the application and hope it all got put together correctly to work with the trains!
Lots to do this week to make it done. So no list, just finish it :)
April 22, 2012:
IT'S WORKING! Success and Excitement wrapped up this week. The application is now working with the trains. Although it was not an easy slide this week. I finished putting the graphical layout together to make it look good. I had connection issues that were solvable such as forgetting to create the DataInputStream and DataOutputStream when trying to read. However, I still wasn't able to connect. I spent a full day trying to just make connection to the server that connects to the trains (i.e. Brice's server). I was mostly working with my emulator for Android to get a connection before even attempting to connect the phone or tablet. However I couldn't make a connection at all and it was in my line that connected the socket that was crashing. I ended up trying everything, even just Brice's client and server. I could get both the server and the client to run on the same computer. This didn't matter if both were on the desktop or both on my laptop. Then I tried leaving the server on the desktop and putting the client on my laptop, but no connection. Then I tried the opposite by putting the server on my laptop and the client on the desktop and connection! This is when I knew the problem most likely wasn't the code anymore. I met with Dr. Pankratz and had input from Sergii Bilokhatniuk about it potentially being a firewall problem. I ended up talking to Joel Rodriguez, another student working with sockets for his project, to see why both of us were having connection issues. It was on Thursday night that Joel figured out that it was a firewall issue. Both of us had to contact IT to create a hole in the SNC firewall for a specific IP address and physical address of a computer. St. Norbert computers didn't allow outside access to the server. Well then the problem was solved. I worked the rest of the night getting my client to connect to Brice's server when it wasn't connected to the trains and got everything working properly. I had issues getting the socket to disconnect properly and then had problems with the thread not being killed when the socket was killed. These were both easy fixes based on overriding the correct function when the application closed and making sure the thread had a return statement so that everything disconnected properly. Then I tested it with the trains and everything seemed to be working alright. The trains were moving with both the tablet and the phone. The only problems left were that the server would have issues if the track shorted and when the server froze the information being sent to the client would go back to the defaults. The only fix was to restart the server.
I tried getting the accelerometer to work since I had a little time. I used the exact same implementation as my test application and trying to catch certain values of the coordinates of the sensor. I could get the phone to go forward based on this implementation but had issues getting the trains to stop or go in reverse. There was also not a lot of change in the speed meaning that it was not sending the faster command to the server multiple times like it should be doing. I believe the problem with this is that the sensor would change so often since it was very sensitive to movement and would create an interrupt to handle the sensor change and wouldn't always send commands to the server. I can't be sure on this however because I was using the phone to test the application since the emulator can't emulate the tilt of the phone and therefore I couldn't get information about the errors from the Log statements without having an application to retrieve the logs from the phone. Since this would be a last minute addition I didn't download the app and troubleshoot the problem I think there is a much better implementation of this concept and ran out of time to research the different implementations.
IT'S WORKING! Success and Excitement wrapped up this week. The application is now working with the trains. Although it was not an easy slide this week. I finished putting the graphical layout together to make it look good. I had connection issues that were solvable such as forgetting to create the DataInputStream and DataOutputStream when trying to read. However, I still wasn't able to connect. I spent a full day trying to just make connection to the server that connects to the trains (i.e. Brice's server). I was mostly working with my emulator for Android to get a connection before even attempting to connect the phone or tablet. However I couldn't make a connection at all and it was in my line that connected the socket that was crashing. I ended up trying everything, even just Brice's client and server. I could get both the server and the client to run on the same computer. This didn't matter if both were on the desktop or both on my laptop. Then I tried leaving the server on the desktop and putting the client on my laptop, but no connection. Then I tried the opposite by putting the server on my laptop and the client on the desktop and connection! This is when I knew the problem most likely wasn't the code anymore. I met with Dr. Pankratz and had input from Sergii Bilokhatniuk about it potentially being a firewall problem. I ended up talking to Joel Rodriguez, another student working with sockets for his project, to see why both of us were having connection issues. It was on Thursday night that Joel figured out that it was a firewall issue. Both of us had to contact IT to create a hole in the SNC firewall for a specific IP address and physical address of a computer. St. Norbert computers didn't allow outside access to the server. Well then the problem was solved. I worked the rest of the night getting my client to connect to Brice's server when it wasn't connected to the trains and got everything working properly. I had issues getting the socket to disconnect properly and then had problems with the thread not being killed when the socket was killed. These were both easy fixes based on overriding the correct function when the application closed and making sure the thread had a return statement so that everything disconnected properly. Then I tested it with the trains and everything seemed to be working alright. The trains were moving with both the tablet and the phone. The only problems left were that the server would have issues if the track shorted and when the server froze the information being sent to the client would go back to the defaults. The only fix was to restart the server.
I tried getting the accelerometer to work since I had a little time. I used the exact same implementation as my test application and trying to catch certain values of the coordinates of the sensor. I could get the phone to go forward based on this implementation but had issues getting the trains to stop or go in reverse. There was also not a lot of change in the speed meaning that it was not sending the faster command to the server multiple times like it should be doing. I believe the problem with this is that the sensor would change so often since it was very sensitive to movement and would create an interrupt to handle the sensor change and wouldn't always send commands to the server. I can't be sure on this however because I was using the phone to test the application since the emulator can't emulate the tilt of the phone and therefore I couldn't get information about the errors from the Log statements without having an application to retrieve the logs from the phone. Since this would be a last minute addition I didn't download the app and troubleshoot the problem I think there is a much better implementation of this concept and ran out of time to research the different implementations.
April 29, 2012:
This week was purely documentation and building the website. I spent the week catching up on documentation and making sure to give credit where credit was due. The website still has work to be done. I've been gathering my files and preparing everything to be handed in and uploaded on the website. I'm happy to be done and yet still want to keep going! I had a lot of fun with this project and enjoyed getting the chance to play with something new like the trains. I didn't know a lot about model trains or computer controlled railroads when I started, but I have learned a lot along the way. I got the chance to try a new language, a new operating system, and new concepts to me like sockets. I loved getting the chance to learn hands-on and be able to get input from both the professors and fellow students to get help with implementations.
This week was purely documentation and building the website. I spent the week catching up on documentation and making sure to give credit where credit was due. The website still has work to be done. I've been gathering my files and preparing everything to be handed in and uploaded on the website. I'm happy to be done and yet still want to keep going! I had a lot of fun with this project and enjoyed getting the chance to play with something new like the trains. I didn't know a lot about model trains or computer controlled railroads when I started, but I have learned a lot along the way. I got the chance to try a new language, a new operating system, and new concepts to me like sockets. I loved getting the chance to learn hands-on and be able to get input from both the professors and fellow students to get help with implementations.