Showing posts with label osx. Show all posts
Showing posts with label osx. Show all posts

Wednesday, August 8, 2012

Monterey 2.0.3 Beta Released

I have some good news and some bad news!  First off, I have finally released Monterey 2.0.3 Beta for Windows.  The bad news is that the OSX release is going to lag behind a bit.  I am currently developing on OSX 10.8 Mountain Lion, so I will need to look into testing on Lion and Snow Leopard machines.  One person already alerted me to the crash on OSX Leopard, so I think I was able to change the update alert before too many people downloaded the new version.

Thanks!

Chris

Thursday, July 26, 2012

ROV-Suite, OSX 10.8, Headaches

Yay for smooth(er) circles and OSX 10.8!
I'm not going to go into too many details tonight because of the time, but there's some new code sitting in the repo still warm from my keyboard.  I've started adding the code that reads the joystick's hats and buttons.  It's kind of a pain simply because it's a fair amount of work and then I have to figure out to sync the inputs that Monterey gets from it's GUI and from the joystick (and Tahoe) and make them all spit out a single, correct value to the ROV.  So far, the joystick's first hat can change the servo values and enable or disable a relay while the joystick's buttons can only enable or disable relays.  I'm going to add their servo code within the next few days.  So far, these settings can only be changed in the settings.ini file, but I will break them out to a GUI.  Speaking of the GUI, look at the compass!  I have finally gotten around to touching up the outer ring around the compass!  I think it looks much better (albeit maybe not perfect).  Please be aware that this code, Monterey 2.0.3 Beta, is not in the downloads page yet and is not yet ready for public consumption.  I just put it in the public for those of you who always want the latest, most cutting edge code.

Speaking of the cutting edge, I finally upgraded my MacBook Pro from 10.6.8 to 10.8!  I can finally enjoy all of the features of Lion and Mountain Lion!  I never thought I'd like the fullscreen apps part, but I'm finding that I enjoy using the fullscreen apps (and the four-fingered swipe between them) much more than I ever loved Spaces.  My only complaints so far are that 1) Apple doesn't ship any version of Make with 10.8 (first install Xcode 4.4 and then install the command line tools in the downloads section of Xcode's preferences) and 2) most of my programming tools are yet to be upgraded to be fully compatible with Mountain Lion.  I tried to install Valgrind tonight, but I couldn't even build it because compilation would stop with a "Your version of OSX is not supported" message.  Luckily, even though Qt 4.8.1 spits out about 25 warning messages (all with the "your version of OSX is not supported" text), it stil compiles my applications.  Although I have seem to have run into an issue... When running the debug build of Monterey on OSX 10.8 I get many crashes during startup and seemingly arbitrarily afterwards.  Most are sigsegv and sigabrt messages, although most seem to be related to QList.  The weird part is, when I switch the the release build of the same source code, everything runs along perfectly fine.  My guess is that maybe there's a compatibility issue with the debug libraries of Qt 4.8.1 and OSX 10.8.... or perhaps I'm just a crappy programmer (a much more likely alternative, except for the fact that these issues only plague the debug build).  ;)  My advice is to hold off on Mountain Lion until your programming environment has fully been carried over.  If you don't wait, you might run into the headaches that I've been running into.  But, let me tell you, OSX 10.8 is one amazing OS and I have almost no regrets upgrading so early.  The rest of the user experience has been perfect!

Anyways, I'll be uploading the latest version of Monterey when I get it all worked out.  Hopefully these crashing issues with the debug build are related more to Mountain Lion and less to any errors I've created.

Thanks for stopping by!

Chris Konstad

Sunday, June 10, 2012

ROV-suite: Tahoe


I've been working recently on the portable (tablet and netbook) UI for Monterey, and here's a screenshot! How does this work?  Simple!  Once running Monterey, join the same network (ad-hoc should work) with your tablet and then start up Tahoe!  The two will communicate over UDP and Tahoe's controls will operate the ROV.  Right now, Tahoe isn't complete, so this is just a sneak peak at things to come.  When finished, Tahoe will also display all of the sensor values with sensor names and units.  Even the relay names will sync with Monterey!

There are a few issues at the moment that I will need to work out.  First (not really an issue) is that Tahoe isn't completed yet.  I still need to add the code that displays the sensor values (even the code for my awesome compass that I got the background and outer ring from the QFlightInstruments project).  Also, my goal is to make a seamless sync between Tahoe and Monterey.  When a value is adjusted in one, it is adjusted properly in the other and also sent to the ROV.  Currently, Tahoe just overwrites anything that Monterey does, and Monterey does not display the change in its GUI (unless you check the debug window's packet display).

There's still work left to do on Tahoe, and same with Monterey.  But!  Thankfully the beta release of Monterey is out and since it's release, there have already been 20 downloads!  I am still working on getting out the documentation for Monterey and, of course, I'm working on writing and Arduino firmware that will act as the ROV's firmware ("bottomside code") for ROV-suite.  And as always, feel free to write your own!

Thanks for stopping by!

Chris K

Tuesday, May 29, 2012

ROV-suite: Monterey 2.0.0 Beta

Great news!  The beta release of Monterey version 2.0.0 is finally here!  This is the moment that many of you have waiting for since the end of 2011.  I have to say that because of the new features, better UI and cleaner code, the wait was well worth it!  Since I got this application ready earlier than expected, the bottomside code to compliment it and the documentation for both are going to be released sometime in the June and July time frame.  Since the source is available online on the repo, you can get all of the documentation you need from there (for the time being).  Also, feel free to compile it from source if I haven't uploaded a binary for your system by the time you read this!  I'll put the Windows binary up first (I'm in that OS at the moment) with the OSX binary soon following.  After that, I'll get around to putting up the Linux binary.  So far, I've only tested this in Windows and OSX (I haven't done much development work in Linux), so it might be a few days until I have the Linux binary up.

Also, I'm already coming up with more ideas to implement within ROV-suite.  For instance, how about using a wireless Xbox360 controller to pilot the ROV with an Android tablet application as your UI (due to joystick libraries Monterey would have be running on a laptop on the network)?  This could aid debugging and normal operations by increasing portability and flexibility.

But before I go off and start adding more features, I do want to put out some top-notch documentation and a complimentary bottomside firmware so that using an Arduino with Ethernet support (either Arduino Ethernet or an Arduino with a shield), you can have an operational ROV as quickly as possible!

Thanks for stopping by and expect more information (and posts) on ROV-suite soon!

Chris K

P.S.  I'm pretty tired tonight so this is kind of a brief post that doesn't go into too many details.  You can expect more technical details later.  Also... Happy 20th post!!!!!

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.

Thursday, March 15, 2012

NetworkingTest



Good news!  I've been working on touching up my UDP networking tools (NetworkingTest).  I've added a timestamped logging feature, cleaned up the code, fixed a bug, fixed the keyboard shortcuts and added an icon!  Plus, I have re-released the code onto my Sourceforge project.  You can find the executable here.  For the meantime, I have only released the OSX version.  I will recompile it on Windows and upload that ASAP.

The Android version of NetworkingTest has received a similar update (without the new icon, although I will probably change it's icon to the newer, improved one).  I will upload the *.apk of the Android version soon!

Chris K

Sunday, February 26, 2012

Qt + SDL on OSX Tutorial

I know that I promised a tutorial on using SDL with Qt on OSX, and here it is (complete with screenshots)!

To download the example application that I used (Joypick), go here.  You will obviously want to get the source code, not the executable.  It is under the "Source" tab.

Step 1:  Download the SDL Library


Go to the SDL download page to download the OSX runtime library.  It'll download as a *.dmg file.

Step 2: Copy Files
Open up the *.dmg and select the "devel-lite" folder.  Next, copy the "SDLMain.h" and "SDLMain.m" files to a place of your choosing.  I like to copy this kind of files to ...QtSDK/ExternalLibs/ on my hard drive.  It's just a nice place to keep them organized, although you can put them wherever you want.

Step 3: Install Framework
Next, copy the "SDL.framework" folder from the *.dmg to /System/Library/Frameworks/.  That is all there is to installing the framework.

Step 4:  Modify the *.pro File


Here is how my *.pro file looks.  I've modified it slightly from the original to get rid of the Windows related information.  Then, right-click (control-click) on Joypick (under Projects) and click on "Add Existing Files."
Next, locate the "SDLMain.h" and "SDLMain.m" files on your hard drive and select those.  Then click on "Open."  Qt Creator will automatically modify your *.pro file to include these files.

Step 5:  Link to the Framework
Now it is time to link to the SDL.framework that you installed earlier.  Go ahead and add the two lines that you see in the picture above (lines 17 and 18) exactly as they are shown (working on Snow Leopard).  I'll show them below.

QMAKE_LFLAGS += -F/Library/Frameworks/
LIBS += -framework SDL

Step 6: Undefine main
Because of SDL, you'll need to undefine main in your "main.cpp" file.  See picture above for more information.

Step 7: Fix the Crash
Open up "qjoystick.cpp" and go to where
void QJoystick::setJoystick(int js)
{
     Q_ASSERT(js < availableJoysticks());
     Q_ASSERT(js >= 0);
     
     SDL_JoystickClose(m_joystick);
     m_joystick = SDL_JoystickOpen(js);
}
is.  Go ahead and comment out the line that says
SDL_JoystickClose(m_joystick);
.  This line causes the application to crash almost each time it is run when not using an XBox 360 wired joystick (bug confirmed on Windows but not tested on OSX).

Step 8: Build and Run!
Go ahead and run Joypick.  It should work like a charm!  I tested this out using a Logitech Extreme 3D Pro joystick on Snow Leopard.  Enjoy being able to run SDL applications on OSX!

I hope this helps out!

Chris K

P.S.  If you have any questions, feel free to ask them in the comments.

Friday, February 17, 2012

Qt + SDL on OSX

First things first:  I spend way more time in Windows 7 on my MacBook Pro than I do in OSX SL.  So when I finally learned a little about OSX's frameworks and *.dylibs I thought I'd give Qt and SDL on OSX another try.  After about 30 minutes of research, I have successfully used SDL on OSX to read joysticks using a Qt application!  Now, I can configure Monterey to compile on OSX and rov-suite will be another step closer to it's full cross-platform distribution that I set out to create when I first started it.

Here's the photographic proof:



I got the original Joypick source code from http://code.google.com/p/joypick/.  By the way, the developer of Joypick is the same guy that I got the QJoystick class from... which I use in Monterey.  It's the best class that I've found out there for reading USB joysticks.  If you are looking to use USB joysticks in Qt, check it out!

I'm pretty busy right now with things other than programming, but I'll post a tutorial about how to use Qt and SDL on OSX here soon (within the next week).  

Thanks for stopping by!

Chris K