{"id":253,"date":"2009-04-18T17:50:09","date_gmt":"2009-04-18T22:50:09","guid":{"rendered":"http:\/\/www.virtualroadside.com\/blog\/?p=253"},"modified":"2009-04-18T17:50:09","modified_gmt":"2009-04-18T22:50:09","slug":"boost-asio-and-boost-thread-patches-for-vxworks","status":"publish","type":"post","link":"https:\/\/www.virtualroadside.com\/blog\/index.php\/2009\/04\/18\/boost-asio-and-boost-thread-patches-for-vxworks\/","title":{"rendered":"Boost Asio and Boost Thread patches for vxWorks"},"content":{"rendered":"<p>The FIRST Robotics Competition is using the National Instruments cRio platform for the robot controller this year, and the operating system on it is vxWorks 6.3. After we participated in the competition, I had gotten a great idea involving putting a webserver on the robot so that it would be easier to tune various parameters on the robot (which I will be releasing soon).<\/p>\n<p>I decided to use <a href=\"http:\/\/www.boost.org\/doc\/libs\/1_38_0\/doc\/html\/boost_asio.html\">Boost::Asio<\/a> for the networking layer since I had been meaning to write something using it for awhile anyways, and since its portable I could do the initial development on my home computer and then easily (at least, ideally) transfer it to another platform. I also decided to use <a href=\"http:\/\/www.boost.org\/doc\/libs\/1_38_0\/doc\/html\/thread.html\">Boost::Thread<\/a> for the same reason. If you haven&#8217;t used <a href=\"http:\/\/www.boost.org\/\">Boost<\/a> before, I highly recommend it &#8212; it has a lot of well-written and useful C++ header-only libraries.<\/p>\n<p>Unfortunately, vxWorks is a bit different than &#8216;standard&#8217; POSIX\/*nix systems, so there are a number of patches one needs to make to Boost 1.38.0 in order to compile. I&#8217;ve submitted the patches to boost, so hopefully by the time 1.39.0 rolls around you won&#8217;t need this. \ud83d\ude42<\/p>\n<p>You can download the full patchset needed from my FRC resources page. <a href=\"http:\/\/www.virtualroadside.com\/FRC\/#boost_1_38_0.asio\">Download it. <\/a><\/p>\n<p>I&#8217;ve also posted bugs on the Boost Trac site: <a class=\"new ticket\" title=\"Bugs: BOOST_ASIO_DISABLE_SERIAL_PORT doesn't work as expected (new)\" href=\"https:\/\/svn.boost.org\/trac\/boost\/ticket\/2917\">#2917<\/a>, <a class=\"closed ticket\" title=\"Bugs: send_operation::perform does not consume buffer on would_block (closed: fixed)\" href=\"https:\/\/svn.boost.org\/trac\/boost\/ticket\/2953\">#2953<\/a>, <a class=\"new ticket\" title=\"Patches: [patch] recursive mutex impossible if pthread_mutexattr_settype not  ... (new)\" href=\"https:\/\/svn.boost.org\/trac\/boost\/ticket\/2955\">#2955<\/a>, <a class=\"new ticket\" title=\"Patches: vxWorks POSIX quirks for date_time (new)\" href=\"https:\/\/svn.boost.org\/trac\/boost\/ticket\/2956\">#2956<\/a>, <a class=\"new ticket\" title=\"Patches: [patch] boost functional configuration for vxworks (new)\" href=\"https:\/\/svn.boost.org\/trac\/boost\/ticket\/2957\">#2957<\/a>, <a class=\"new ticket\" title=\"Patches: [patch] changes to make asio compile on vxWorks (new)\" href=\"https:\/\/svn.boost.org\/trac\/boost\/ticket\/2958\">#2958<\/a>, and <a class=\"new ticket\" title=\"Patches: [patch] changes to make asio compile on vxWorks (new)\" href=\"https:\/\/svn.boost.org\/trac\/boost\/ticket\/2959\">#2959<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>The FIRST Robotics Competition is using the National Instruments cRio platform for the robot controller this year, and the operating system on it is vxWorks 6.3. After we participated in the competition, I had gotten a great idea involving putting a webserver on the robot so that it would be easier to tune various parameters [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"_links":{"self":[{"href":"https:\/\/www.virtualroadside.com\/blog\/index.php\/wp-json\/wp\/v2\/posts\/253"}],"collection":[{"href":"https:\/\/www.virtualroadside.com\/blog\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.virtualroadside.com\/blog\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.virtualroadside.com\/blog\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.virtualroadside.com\/blog\/index.php\/wp-json\/wp\/v2\/comments?post=253"}],"version-history":[{"count":1,"href":"https:\/\/www.virtualroadside.com\/blog\/index.php\/wp-json\/wp\/v2\/posts\/253\/revisions"}],"predecessor-version":[{"id":254,"href":"https:\/\/www.virtualroadside.com\/blog\/index.php\/wp-json\/wp\/v2\/posts\/253\/revisions\/254"}],"wp:attachment":[{"href":"https:\/\/www.virtualroadside.com\/blog\/index.php\/wp-json\/wp\/v2\/media?parent=253"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.virtualroadside.com\/blog\/index.php\/wp-json\/wp\/v2\/categories?post=253"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.virtualroadside.com\/blog\/index.php\/wp-json\/wp\/v2\/tags?post=253"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}