{"id":233,"date":"2009-03-14T05:08:54","date_gmt":"2009-03-14T10:08:54","guid":{"rendered":"http:\/\/www.virtualroadside.com\/blog\/?p=233"},"modified":"2009-03-14T05:46:27","modified_gmt":"2009-03-14T10:46:27","slug":"wpilib-test-harness-released","status":"publish","type":"post","link":"http:\/\/www.virtualroadside.com\/blog\/index.php\/2009\/03\/14\/wpilib-test-harness-released\/","title":{"rendered":"WPILib Test Harness Released!"},"content":{"rendered":"<p>So after *far* too much time spent on this, I am happy to announce the release of my WPILib Test Harness! For those who aren&#8217;t aware, WPILib is the name of the C++ library that FIRST gives to FIRST Robotics Teams to control the robots. The control system is a PowerPC running on a cRio platform designed and produced by National Instruments.<\/p>\n<p>It had occurred to me towards the end of the build season this year that it was really annoying that I could only easily test code while our team was meeting, and of course I stay up late (as evidenced by this post time). So I wrote some stubs, but at some point I realized it would just be easier to make a giant stub for WPILib, since its just a set of classes with some hardware interfaces. It was extremely useful, and as I evolved it I was even able to find bugs in WPILib and the program for our bot.<\/p>\n<p>At some point I decided to bring it in the direction that it is now, and I&#8217;ve spent the last week adding things and making the GUI a bit shinier. I&#8217;m pretty happy with the results so far, but theres a long way to go before every bot program will run under it. There&#8217;s a lot of things that do work, but there&#8217;s also a lot of things that don&#8217;t work.<br \/>\n<!--more--><\/p>\n<p>All you need to do is get a copy of <a href=\"http:\/\/www.microsoft.com\/express\/vc\/\">Visual Studio 2008 Express Edition<\/a>, and install the <a href=\"http:\/\/www.wxwidgets.org\">wxWidgets<\/a> GUI toolkit. Since I&#8217;m using wxWidgets for the GUI, I anticipate that it will get ported over to other platforms in the future as time (and need for it) allows.<\/p>\n<p><strong>Features\/things supported:<\/strong><\/p>\n<ul>\n<li>Run your unmodified robot code in &#8216;realtime&#8217; (mostly) mode or step in 10ms intervals &#8230; unless the portions of WPILib you&#8217;re using aren&#8217;t supported, in which case something will need to be modified. \ud83d\ude42<\/li>\n<li>Clickable and (hopefully) intuitive GUI interface<\/li>\n<li>Supports a joystick attached to your PC<\/li>\n<li>All driver station inputs (analog and digital), plus the LCD screen<\/li>\n<li>All PWM &amp; Solenoid outputs<\/li>\n<li>All analog inputs (interrupts\/advanced features not supported.. not well tested)<\/li>\n<li>Primary digital GPIO supported (interrupts not supported yet)<\/li>\n<li>Skinnable via XRC support<\/li>\n<li>Open source (GPL v3)<\/li>\n<\/ul>\n<p>I found this program to be extremely useful, I hope you find it useful too! If you find any bugs (what bugs? there are no bugs \ud83d\ude09 ) or you have an improvement, please feel free to submit patches!<\/p>\n<p>If there is enough community interest in this program, then I intend to create a publicly accessible SourceForge or Google Code project for it. The source code can be found at my FRC software resources page, and is released under the terms of <a href=\"http:\/\/www.gnu.org\/licenses\/gpl-3.0.html\">GPLv3<\/a>.<\/p>\n<p><a href=\"http:\/\/www.virtualroadside.com\/FRC\/#WPILibTestHarness\">Download WPILib Test Harness Source Code<\/a><\/p>\n<p>Here&#8217;s some screenshots:<\/p>\n<div id=\"attachment_234\" style=\"width: 310px\" class=\"wp-caption alignleft\"><a href=\"http:\/\/www.virtualroadside.com\/blog\/wp-content\/uploads\/2009\/03\/wpilib_test_harness_ss1.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-234\" class=\"size-medium wp-image-234\" title=\"wpilib_test_harness_ss1\" src=\"http:\/\/www.virtualroadside.com\/blog\/wp-content\/uploads\/2009\/03\/wpilib_test_harness_ss1-300x230.png\" alt=\"WPILib Test Harness Screenshot #1\" width=\"300\" height=\"230\" srcset=\"http:\/\/www.virtualroadside.com\/blog\/wp-content\/uploads\/2009\/03\/wpilib_test_harness_ss1-300x230.png 300w, http:\/\/www.virtualroadside.com\/blog\/wp-content\/uploads\/2009\/03\/wpilib_test_harness_ss1.png 754w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><br \/>\n<p id=\"caption-attachment-234\" class=\"wp-caption-text\">WPILib Test Harness Screenshot #1<\/p><\/div>\n<div id=\"attachment_235\" style=\"width: 310px\" class=\"wp-caption alignleft\"><a href=\"http:\/\/www.virtualroadside.com\/blog\/wp-content\/uploads\/2009\/03\/wpilib_test_harness_ss2.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-235\" class=\"size-medium wp-image-235\" title=\"wpilib_test_harness_ss2\" src=\"http:\/\/www.virtualroadside.com\/blog\/wp-content\/uploads\/2009\/03\/wpilib_test_harness_ss2-300x231.png\" alt=\"WPILib Test Harness Screenshot #2\" width=\"300\" height=\"231\" srcset=\"http:\/\/www.virtualroadside.com\/blog\/wp-content\/uploads\/2009\/03\/wpilib_test_harness_ss2-300x231.png 300w, http:\/\/www.virtualroadside.com\/blog\/wp-content\/uploads\/2009\/03\/wpilib_test_harness_ss2.png 758w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><p id=\"caption-attachment-235\" class=\"wp-caption-text\">WPILib Test Harness Screenshot #2<\/p><\/div>\n<p><em>Note: I am not directly associated with or sponsored by WPI, National Instruments, or FIRST (the national organization).<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>So after *far* too much time spent on this, I am happy to announce the release of my WPILib Test Harness! For those who aren&#8217;t aware, WPILib is the name of the C++ library that FIRST gives to FIRST Robotics Teams to control the robots. The control system is a PowerPC running on a cRio [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[41,31,43],"tags":[],"_links":{"self":[{"href":"http:\/\/www.virtualroadside.com\/blog\/index.php\/wp-json\/wp\/v2\/posts\/233"}],"collection":[{"href":"http:\/\/www.virtualroadside.com\/blog\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.virtualroadside.com\/blog\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.virtualroadside.com\/blog\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.virtualroadside.com\/blog\/index.php\/wp-json\/wp\/v2\/comments?post=233"}],"version-history":[{"count":7,"href":"http:\/\/www.virtualroadside.com\/blog\/index.php\/wp-json\/wp\/v2\/posts\/233\/revisions"}],"predecessor-version":[{"id":239,"href":"http:\/\/www.virtualroadside.com\/blog\/index.php\/wp-json\/wp\/v2\/posts\/233\/revisions\/239"}],"wp:attachment":[{"href":"http:\/\/www.virtualroadside.com\/blog\/index.php\/wp-json\/wp\/v2\/media?parent=233"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.virtualroadside.com\/blog\/index.php\/wp-json\/wp\/v2\/categories?post=233"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.virtualroadside.com\/blog\/index.php\/wp-json\/wp\/v2\/tags?post=233"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}