Sunday, April 29, 2012

First Officially Released Android Application

Great news!  I became an Android developer on Google's Playstore today in time to upload my first QML application (a tic-tac-toe game called QML-Tic-Tac-Toe)!  I wrote this game so that I could start becoming familiar with QML and so that I could release my first application on Google's appstore.

As you can see, it's a pretty simplistic game.  Users click on the tiles to place their color there, and when the game is finished, they can click the bar on the right hand side to reset the game.  You can find the source here.  I'll put up the link for this app once it makes it through the approval process.

I plan on taking what I've learned about QML and the Android Marketplace process from this application and applying it to my later apps.  I'm thinking about rewriting the Android ROV Spy application using QML with Qt C++.  That'll be a good lesson for me in tying the two (C++ and QML) together.

I found an awesome tutorial for putting apps up on the Market place by Cutehacks which you can see below:

Thanks for stopping by!

Chris K

Tuesday, April 10, 2012

Update on the Progress of Monterey

I've been working a fair amount recently on Monterey v2.0.  I've been hammering out some code, too (which is always nice)!  Extremely basic functionality is being added right now, with the fancier features to be added later.  Monterey can now send and receive UDP packets.  It can also read the UI's inputs for the relays and servos (and it defaults the motor values when no joystick is present).  Monterey is now also able to save and load settings (partially... still working on fleshing that out).  Although I do plan on making it so that Monterey's settings are stored in an *.ini file so that they are easy to share, backup and copy, I have yet to enable that in my code.  That'll be a feature that comes closer to the release date.

In other news, I'm still working on getting SDL to work with Qt on Android.  If anyone can help me out with that, I'd really appreciate it!  I took yet another stab at doing that today even though I am still only partially familiar with Android programming and I wound up with over 90K errors.  Yes, you read that right: Over 90,000 errors*.  I'm not counting the build warnings, either.  I'm solely counting those red stop signs that appear during the build process.  The picture below doesn't show 90k build errors, but that's because I took the picture before I reached that number.

*I obviously didn't build it right or I used one source version for building the shared object library and another version of the source for the includes.

Anyway, I'm slowly but surely churning out the codebase for Monterey.  It is my first application that I am really stressing OOP and multiple windows, so I'm learning a fair amount of the practical application of those (including sharing data between windows).  But hey!  What fun is working on a new project if you don't learn about anything new?

Thanks for stopping by!

Chris K

Thursday, April 5, 2012

More rov-suite Planning

I've been doing more planning work on how I'm going to tackle the base of Monterey's code.  I'm leaning towards having a QROV object that holds all of the data regarding the ROV's status (motor values, relay values, relay names, etc).  Then, there will be a QROVController object that is used to adjust the QROV values and send a packet to the ROV based on the QROV values.  The QROVController object will handle reading the joystick through QJoystick, although it will probably have a subobject (QJoystickHandler) that will manage the joystick's deadzones and bilinear scaling.  All of the settings and UI inputs will go into the MainWindow class and from there affect QROVController.  This is my current plan of action that I will continue development on soon.

My goal from Monterey is to make it as portable and user friendly as possible.  I recently found out that QSettings lets you force it into saving the settings in a *.ini file instead of in the registry or another location.  I'm going to play around with that, because having of the settings in a separate file will make sharing settings and backing them up easier than it has ever been before.

I had been planning on doing most of the QROVController development during this Spring Break, but other plans have changed that.  Therefore, my initial goal of a mid June release *might* have to be pushed off until late June.  Although a night of two of heavy programming and caffeine might make up for this... ;)

If you have any suggestions, comments or feature requests, let me know!  I'd love to incorporate them!


Tuesday, April 3, 2012

New Networking Test!

The latest and greatest version of Networking Test has just been released! This new version adds two new features: port sharing and autosending.  The autosending feature lets you put in a delay (measured in seconds) which is then used to time the automatic sending of packets.  It's pretty useful!  Another feature is the port sharing.  In Windows that was default, but in OSX* and Linux you had to request that on your own.  Now, Networking Test shouldn't try to lock out other applications that try to access the specified UDP port, which makes it more useful for debugging your own applications.

Head on over to Sourceforge and download the file!

Chris K

*Qt did say that Unix systems disregard the request for a shared port, but they didn't specify if OSX shared that behavior or not.  I know that OSX is based on Unix, but they often aren't lumped together in the same category in the Qt documentation.