You can subscribe to this list here.
2004 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(59) |
Jun
(40) |
Jul
(59) |
Aug
(81) |
Sep
(14) |
Oct
(9) |
Nov
(22) |
Dec
(1) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2005 |
Jan
(25) |
Feb
(3) |
Mar
(27) |
Apr
(14) |
May
(15) |
Jun
(112) |
Jul
(44) |
Aug
(7) |
Sep
(18) |
Oct
(34) |
Nov
(17) |
Dec
(20) |
2006 |
Jan
(12) |
Feb
|
Mar
(1) |
Apr
|
May
|
Jun
(3) |
Jul
(1) |
Aug
|
Sep
|
Oct
|
Nov
(1) |
Dec
(11) |
From: Dominic L. <ma...@us...> - 2004-07-01 18:27:14
|
Update of /cvsroot/robotflow/RobotFlow/html In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv19677 Modified Files: shots.html Log Message: Updated screenshots Index: shots.html =================================================================== RCS file: /cvsroot/robotflow/RobotFlow/html/shots.html,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** shots.html 19 Jan 2004 22:58:46 -0000 1.7 --- shots.html 1 Jul 2004 18:26:59 -0000 1.8 *************** *** 6,12 **** </head> <body text="#000000" bgcolor="#FFFFFF" link="#0000FF" vlink="#990066" alink="#FF0000"> ! <table width="100%"> <tr> --- 6,33 ---- </head> <body text="#000000" bgcolor="#FFFFFF" link="#0000FF" vlink="#990066" alink="#FF0000"> + <h3>NEW SCREENSHOTS</h3> + <table width="100%"> + <tr> + <td> <center><img SRC="http://marie.sourceforge.net/images/fd_behaviors_1.gif" NOSAVE height=800 width=1280></center></td> + </tr> + <tr> + <td><center>01/07/2004 MARIE - Mobile and Autonomous Robotics Integration Environment</center></td> + </tr> + <tr> + <td> <center><img SRC="http://marie.sourceforge.net/images/fd_behaviors_2.gif" NOSAVE height=800 width=1280></center></td> + </tr> + <tr> + <td><center>01/07/2004 MARIE - Mobile and Autonomous Robotics Integration Environment</center></td> + </tr> + <tr> + <td> <center><img SRC="http://marie.sourceforge.net/images/fd_behaviors_3.gif" NOSAVE height=800 width=1280></center></td> + </tr> + <tr> + <td><center>01/07/2004 MARIE - Mobile and Autonomous Robotics Integration Environment</center></td> + </tr> + </table> ! <h3>OLD SCREENSHOTS</h3> <table width="100%"> <tr> |
From: Dominic L. <ma...@us...> - 2004-06-28 01:48:54
|
Update of /cvsroot/robotflow/RobotFlow/html In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv23010 Modified Files: download.html home.html Log Message: News... Index: download.html =================================================================== RCS file: /cvsroot/robotflow/RobotFlow/html/download.html,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** download.html 25 Jun 2004 19:18:25 -0000 1.12 --- download.html 28 Jun 2004 01:48:45 -0000 1.13 *************** *** 10,14 **** <table width="100%"> <tr> ! <td width="15%"><b>07/03/2004</b></td> <td width="85%"><a href="http://sourceforge.net/project/showfiles.php?group_id=51402">Latest version is : RobotFlow-0.2.3</a></td> </tr> --- 10,14 ---- <table width="100%"> <tr> ! <td width="15%"><b>25/06/2004</b></td> <td width="85%"><a href="http://sourceforge.net/project/showfiles.php?group_id=51402">Latest version is : RobotFlow-0.2.3</a></td> </tr> Index: home.html =================================================================== RCS file: /cvsroot/robotflow/RobotFlow/html/home.html,v retrieving revision 1.23 retrieving revision 1.24 diff -C2 -d -r1.23 -r1.24 *** home.html 25 Jun 2004 19:18:25 -0000 1.23 --- home.html 28 Jun 2004 01:48:45 -0000 1.24 *************** *** 32,36 **** <tr> <td width="15%"> <div align=left>25/06/2004</div></td> ! <td width="85%"> <div align=left><a href="doc.html">RobotFlow 0.2.3 released.</a></div></td> </tr> <tr> --- 32,40 ---- <tr> <td width="15%"> <div align=left>25/06/2004</div></td> ! <td width="85%"> <div align=left><a href="doc.html">RobotFlow 0.2.3 released.</a> This release includes new ! <a href="http://marie.sourceforge.net">MARIE</a> blocks ! that are able to extract, serialize and unserialize MARIE data objects. MARIE must be compiled before RobotFlow in order ! to use MARIE blocks. If you don't want to use MARIE blocks, use --disable-MARIE. RobotFlow is now part of the MARIE showcase ! that will be available shortly.Enjoy!</div></td> </tr> <tr> *************** *** 68,72 **** - Vision processing algorithms (color training & tracking, etc.)<br> - <a href="http://playerstage.sourceforge.net/">Player / Stage ! </a>simulator drivers for Overflow/RobotFlow<br> - Signal processing algorithms (audio + video)<br> - Basic Behaviors<br> --- 72,76 ---- - Vision processing algorithms (color training & tracking, etc.)<br> - <a href="http://playerstage.sourceforge.net/">Player / Stage ! </a>simulator drivers for FlowDesigner/RobotFlow<br> - Signal processing algorithms (audio + video)<br> - Basic Behaviors<br> |
From: Dominic L. <ma...@us...> - 2004-06-25 19:18:36
|
Update of /cvsroot/robotflow/RobotFlow/html In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv3902 Modified Files: download.html home.html news.html nodes.html Log Message: updated web site Index: download.html =================================================================== RCS file: /cvsroot/robotflow/RobotFlow/html/download.html,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** download.html 19 May 2004 16:45:09 -0000 1.11 --- download.html 25 Jun 2004 19:18:25 -0000 1.12 *************** *** 11,15 **** <tr> <td width="15%"><b>07/03/2004</b></td> ! <td width="85%"><a href="http://sourceforge.net/project/showfiles.php?group_id=51402">Latest version is : RobotFlow-0.2.2</a></td> </tr> </table> --- 11,15 ---- <tr> <td width="15%"><b>07/03/2004</b></td> ! <td width="85%"><a href="http://sourceforge.net/project/showfiles.php?group_id=51402">Latest version is : RobotFlow-0.2.3</a></td> </tr> </table> Index: home.html =================================================================== RCS file: /cvsroot/robotflow/RobotFlow/html/home.html,v retrieving revision 1.22 retrieving revision 1.23 diff -C2 -d -r1.22 -r1.23 *** home.html 27 May 2004 19:25:48 -0000 1.22 --- home.html 25 Jun 2004 19:18:25 -0000 1.23 *************** *** 31,34 **** --- 31,38 ---- <table width="100%"> <tr> + <td width="15%"> <div align=left>25/06/2004</div></td> + <td width="85%"> <div align=left><a href="doc.html">RobotFlow 0.2.3 released.</a></div></td> + </tr> + <tr> <td width="15%"> <div align=left>27/05/2004</div></td> <td width="85%"> <div align=left><a href="doc.html">Added Doxygen Documentation</a></div></td> *************** *** 41,61 **** <td width="15%"> <div align=left>07/04/2004</div></td> <td width="85%"> <div align=left>Added a RobotFlow presentation in the <a href="doc.html"> documentation section</a>.</div></td> ! </tr> ! <tr> ! <td width="15%"> <div align=left>07/04/2004</div></td> ! <td width="85%"> <div align=left>RobotFlow-0.2.2 is now available, please see the <a href="download.html"> download section</a></div></td> ! </tr> ! <tr> ! <td width="15%"> <div align=left>17/01/2004</div></td> ! <td width="85%"> <div align=left>Added <a href="status.html">status section</a>.</div></td> ! </tr> ! <tr> ! <td width="15%"> <div align=left>02/11/2003</div></td> ! <td width="85%"> <div align=left>Finite State Machine (FSM) <a href="doc.html"> documentation available in the documentation section</a>.</div></td> ! </tr> ! <tr> ! <td width="15%"> <div align=left>07/31/2003</div></td> ! <td width="85%"> <div align=left>RobotFlow is now part of the <a href="http://sourceforge.net/projects/marie/">MARIE (Mobile Autonomous Robotics Integration Environment)</a> project.</div></td> ! </tr> </table> --- 45,49 ---- <td width="15%"> <div align=left>07/04/2004</div></td> <td width="85%"> <div align=left>Added a RobotFlow presentation in the <a href="doc.html"> documentation section</a>.</div></td> ! </tr> </table> *************** *** 103,106 **** --- 91,105 ---- <hr width="100%" size="1"> + + <!-- Start of StatCounter Code --> + <script type="text/javascript" language="javascript"> + var sc_project=322897; + var sc_partition=1; + var sc_invisible=1; + </script> + + <script type="text/javascript" language="javascript" src="http://www.statcounter.com/counter/frames.js"></script><noscript><a href="http://www.statcounter.com/free_hit_counter.html" target="_blank"><img src="http://c2.statcounter.com/counter.php?sc_project=322897&amp;java=0&invisible=1" alt="counter" border="0"></a> </noscript> + <!-- End of StatCounter Code --> + <table width="100%"> <tr> Index: news.html =================================================================== RCS file: /cvsroot/robotflow/RobotFlow/html/news.html,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** news.html 27 May 2004 16:00:45 -0000 1.10 --- news.html 25 Jun 2004 19:18:25 -0000 1.11 *************** *** 9,12 **** --- 9,16 ---- <table width="100%"> <tr> + <td width="15%"> <div align=left>25/06/2004</div></td> + <td width="85%"> <div align=left><a href="doc.html">RobotFlow 0.2.3 released.</a></div></td> + </tr> + <tr> <td width="15%"> <div align=left>27/05/2004</div></td> <td width="85%"> <div align=left><a href="doc.html">Added Doxygen Documentation</a></div></td> Index: nodes.html =================================================================== RCS file: /cvsroot/robotflow/RobotFlow/html/nodes.html,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** nodes.html 27 May 2004 16:00:45 -0000 1.2 --- nodes.html 25 Jun 2004 19:18:25 -0000 1.3 *************** *** 12,43 **** <tr><td>* <a href="#RobotFlow:Vision">RobotFlow:Vision</a></td> ! <td>* <a href="#RobotFlow:Generic">RobotFlow:Generic</a></td></tr> <tr><td>* <a href="#RobotFlow:Robots">RobotFlow:Robots</a></td> ! <td>* <a href="#RobotFlow:FSM">RobotFlow:FSM</a></td></tr> <tr><td>* <a href="#RobotFlow:Probes">RobotFlow:Probes</a></td> ! <td>* <a href="#RobotFlow:Devices">RobotFlow:Devices</a></td></tr> <tr><td>* <a href="#RobotFlow:Player">RobotFlow:Player</a></td> ! <td>* <a href="#RobotFlow:Control">RobotFlow:Control</a></td></tr> <tr><td>* <a href="#RobotFlow:Pioneer2">RobotFlow:Pioneer2</a></td> <td>* <a href="#RobotFlow:Behaviors">RobotFlow:Behaviors</a></td></tr> </table></center> ! <br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><hr><br><h1>Categories:</h1><p><a NAME="RobotFlow:Vision"></a><h2><br><br><br><br><br><br><hr><br>* RobotFlow:Vision (26)</h2><h3>List of available FlowDesigner nodes </h3> <table BORDER COLS=3 WIDTH="60% " NOSAVE > <tr><td>* <a href="#BMPLoad">BMPLoad</a></td> ! <td>* <a href="#HoughTransform">HoughTransform</a></td> <td>* <a href="#MultiColorTracker">MultiColorTracker</a></td></tr> <tr><td>* <a href="#BMPSave">BMPSave</a></td> ! <td>* <a href="#ImageAnd">ImageAnd</a></td> <td>* <a href="#PPMImage">PPMImage</a></td></tr> <tr><td>* <a href="#Bt848">Bt848</a></td> ! <td>* <a href="#ImageCorrellation">ImageCorrellation</a></td> <td>* <a href="#PrintLines">PrintLines</a></td></tr> <tr><td>* <a href="#ColorTracker">ColorTracker</a></td> ! <td>* <a href="#ImageOr">ImageOr</a></td> <td>* <a href="#RGB152GREY">RGB152GREY</a></td></tr> <tr><td>* <a href="#Components">Components</a></td> ! <td>* <a href="#InverseHough">InverseHough</a></td> <td>* <a href="#RGBMerge">RGBMerge</a></td></tr> <tr><td>* <a href="#ComponentsDraw">ComponentsDraw</a></td> --- 12,47 ---- <tr><td>* <a href="#RobotFlow:Vision">RobotFlow:Vision</a></td> ! <td>* <a href="#RobotFlow:MARIE:DATA">RobotFlow:MARIE:DATA</a></td></tr> <tr><td>* <a href="#RobotFlow:Robots">RobotFlow:Robots</a></td> ! <td>* <a href="#RobotFlow:MARIE:COMMAND">RobotFlow:MARIE:COMMAND</a></td></tr> <tr><td>* <a href="#RobotFlow:Probes">RobotFlow:Probes</a></td> ! <td>* <a href="#RobotFlow:Generic">RobotFlow:Generic</a></td></tr> <tr><td>* <a href="#RobotFlow:Player">RobotFlow:Player</a></td> ! <td>* <a href="#RobotFlow:FSM">RobotFlow:FSM</a></td></tr> <tr><td>* <a href="#RobotFlow:Pioneer2">RobotFlow:Pioneer2</a></td> + <td>* <a href="#RobotFlow:Devices">RobotFlow:Devices</a></td></tr> + <tr><td>* <a href="#RobotFlow:MARIE:zdeprecated">RobotFlow:MARIE:zdeprecated</a></td> + <td>* <a href="#RobotFlow:Control">RobotFlow:Control</a></td></tr> + <tr><td>* <a href="#RobotFlow:MARIE:IO">RobotFlow:MARIE:IO</a></td> <td>* <a href="#RobotFlow:Behaviors">RobotFlow:Behaviors</a></td></tr> </table></center> ! <br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><hr><br><h1>Categories:</h1><p><a NAME="RobotFlow:Vision"></a><h2><br><br><br><br><br><br><hr><br>* RobotFlow:Vision (28)</h2><h3>List of available FlowDesigner nodes </h3> <table BORDER COLS=3 WIDTH="60% " NOSAVE > <tr><td>* <a href="#BMPLoad">BMPLoad</a></td> ! <td>* <a href="#ImageAnd">ImageAnd</a></td> <td>* <a href="#MultiColorTracker">MultiColorTracker</a></td></tr> <tr><td>* <a href="#BMPSave">BMPSave</a></td> ! <td>* <a href="#ImageCorrellation">ImageCorrellation</a></td> <td>* <a href="#PPMImage">PPMImage</a></td></tr> <tr><td>* <a href="#Bt848">Bt848</a></td> ! <td>* <a href="#ImageOr">ImageOr</a></td> <td>* <a href="#PrintLines">PrintLines</a></td></tr> <tr><td>* <a href="#ColorTracker">ColorTracker</a></td> ! <td>* <a href="#InverseHough">InverseHough</a></td> <td>* <a href="#RGB152GREY">RGB152GREY</a></td></tr> <tr><td>* <a href="#Components">Components</a></td> ! <td>* <a href="#JPEGLoadMemory">JPEGLoadMemory</a></td> <td>* <a href="#RGBMerge">RGBMerge</a></td></tr> <tr><td>* <a href="#ComponentsDraw">ComponentsDraw</a></td> *************** *** 45,54 **** <td>* <a href="#RGBSplit">RGBSplit</a></td></tr> <tr><td>* <a href="#ComponentsViewer">ComponentsViewer</a></td> ! <td>* <a href="#Magn2EdgeMap">Magn2EdgeMap</a></td> <td>* <a href="#SplitImage">SplitImage</a></td></tr> <tr><td>* <a href="#FakeImage">FakeImage</a></td> ! <td>* <a href="#Magnitude">Magnitude</a></td> <td>* <a href="#SubImage">SubImage</a></td></tr> <tr><td>* <a href="#GrayGaussianBlur">GrayGaussianBlur</a></td> <td>* <a href="#MovementDetector">MovementDetector</a></td> </tr> --- 49,61 ---- <td>* <a href="#RGBSplit">RGBSplit</a></td></tr> <tr><td>* <a href="#ComponentsViewer">ComponentsViewer</a></td> ! <td>* <a href="#LoadImage">LoadImage</a></td> <td>* <a href="#SplitImage">SplitImage</a></td></tr> <tr><td>* <a href="#FakeImage">FakeImage</a></td> ! <td>* <a href="#Magn2EdgeMap">Magn2EdgeMap</a></td> <td>* <a href="#SubImage">SubImage</a></td></tr> <tr><td>* <a href="#GrayGaussianBlur">GrayGaussianBlur</a></td> + <td>* <a href="#Magnitude">Magnitude</a></td> + </tr> + <tr><td>* <a href="#HoughTransform">HoughTransform</a></td> <td>* <a href="#MovementDetector">MovementDetector</a></td> </tr> *************** *** 349,352 **** --- 356,381 ---- <td WIDTH="15%">WIDTH</td><td WIDTH="15%">int</td><td WIDTH="40%">Image Width</td></tr><td WIDTH="15%">HEIGHT</td><td WIDTH="15%">int</td><td WIDTH="40%">Image Height</td></tr></tr> </table> + <br>Return to: <a href="#RobotFlow:Vision">RobotFlow:Vision</a><br><br>See next category: <a href="#RobotFlow:Robots">RobotFlow:Robots</a><br><br>Return to: <a href="#Categories of available FlowDesigner nodes">Categories of available FlowDesigner nodes</a><br><br><p><a NAME="JPEGLoadMemory"></a> + <h3> + JPEGLoadMemory (RobotFlow:Vision)</h3> + Save a JPEG image<br> + <table BORDER COLS=4 WIDTH="75%" NOSAVE > + <tr> + <td WIDTH="10%"></td> + <th WIDTH="15%">NAME</th> + <th WIDTH="10%">TYPE</th> + <th WIDTH="40%">MEANING</th> + </tr> + <tr NOSAVE> + <th WIDTH="10%">Inputs</th> + <td WIDTH="15%">INPUT_DATA</td><td WIDTH="10%">string</td><td WIDTH="40%">Input image in memory (JPEG format)</td></tr> + <tr NOSAVE> + <th WIDTH="10%">Outputs</th> + <td WIDTH="15%">IMAGE</td><td WIDTH="10%">Image</td><td WIDTH="40%">The output image created from data + </td></tr> + <tr NOSAVE> + <th WIDTH="10%" ROWSPAN="#2">Parameters</th> + <td WIDTH="15%">IMAGE_WIDTH</td><td WIDTH="15%">int</td><td WIDTH="40%">the width of the image to create</td></tr><td WIDTH="15%">IMAGE_HEIGHT</td><td WIDTH="15%">int</td><td WIDTH="40%">the height of the image to create</td></tr></tr> + </table> <br>Return to: <a href="#RobotFlow:Vision">RobotFlow:Vision</a><br><br>See next category: <a href="#RobotFlow:Robots">RobotFlow:Robots</a><br><br>Return to: <a href="#Categories of available FlowDesigner nodes">Categories of available FlowDesigner nodes</a><br><br><p><a NAME="JPEGSave"></a> <h3> *************** *** 364,372 **** <td WIDTH="15%">INPUT</td><td WIDTH="15%">Image</td><td WIDTH="40%">Input image to be saved</td></tr><td WIDTH="15%">SAVE_FILENAME</td><td WIDTH="15%">string</td><td WIDTH="40%">file name to save probe content (JPEG)</td></tr></tr> <tr NOSAVE> <th WIDTH="10%">Outputs</th> ! <td WIDTH="15%">OUTPUT</td><td WIDTH="10%">Image</td><td WIDTH="40%">The same as the input image</td></tr> <tr NOSAVE> <th WIDTH="10%">Parameters</th> ! <td>none</td><td>none</td><td>none</td></tr> </table> <br>Return to: <a href="#RobotFlow:Vision">RobotFlow:Vision</a><br><br>See next category: <a href="#RobotFlow:Robots">RobotFlow:Robots</a><br><br>Return to: <a href="#Categories of available FlowDesigner nodes">Categories of available FlowDesigner nodes</a><br><br><p><a NAME="Magn2EdgeMap"></a> --- 393,423 ---- <td WIDTH="15%">INPUT</td><td WIDTH="15%">Image</td><td WIDTH="40%">Input image to be saved</td></tr><td WIDTH="15%">SAVE_FILENAME</td><td WIDTH="15%">string</td><td WIDTH="40%">file name to save probe content (JPEG)</td></tr></tr> <tr NOSAVE> + <th WIDTH="10%" ROWSPAN="#2">Outputs</th> + <td WIDTH="15%">IMAGE</td><td WIDTH="15%">Image</td><td WIDTH="40%">The same as the input image + </td></tr><td WIDTH="15%">JPEG_DATA</td><td WIDTH="15%">string</td><td WIDTH="40%">Raw (binary) JPEG data.</td></tr></tr> + <tr NOSAVE> + <th WIDTH="10%">Parameters</th> + <td WIDTH="15%">QUALITY</td><td WIDTH="10%">string</td><td WIDTH="40%">string to indicate the quality of the compression, [0 to 100] (</td></tr> + </table> + <br>Return to: <a href="#RobotFlow:Vision">RobotFlow:Vision</a><br><br>See next category: <a href="#RobotFlow:Robots">RobotFlow:Robots</a><br><br>Return to: <a href="#Categories of available FlowDesigner nodes">Categories of available FlowDesigner nodes</a><br><br><p><a NAME="LoadImage"></a> + <h3> + LoadImage (RobotFlow:Vision)</h3> + Read image from disk from a gdk-pixbuf supported format<br> + <table BORDER COLS=4 WIDTH="75%" NOSAVE > + <tr> + <td WIDTH="10%"></td> + <th WIDTH="15%">NAME</th> + <th WIDTH="10%">TYPE</th> + <th WIDTH="40%">MEANING</th> + </tr> + <tr NOSAVE> + <th WIDTH="10%">Inputs</th> + <td WIDTH="15%">FILENAME</td><td WIDTH="10%">string</td><td WIDTH="40%">the file to load</td></tr> + <tr NOSAVE> <th WIDTH="10%">Outputs</th> ! <td WIDTH="15%">IMAGE</td><td WIDTH="10%">Image</td><td WIDTH="40%">output image from file</td></tr> <tr NOSAVE> <th WIDTH="10%">Parameters</th> ! <td WIDTH="15%">PIXELSIZE</td><td WIDTH="10%">int</td><td WIDTH="40%">Pixel Size of output image (1-grayscale, 2-rgb15, 3-rgb24)</td></tr> </table> <br>Return to: <a href="#RobotFlow:Vision">RobotFlow:Vision</a><br><br>See next category: <a href="#RobotFlow:Robots">RobotFlow:Robots</a><br><br>Return to: <a href="#Categories of available FlowDesigner nodes">Categories of available FlowDesigner nodes</a><br><br><p><a NAME="Magn2EdgeMap"></a> *************** *** 1029,1033 **** </tr> </table> ! <br>See next category: <a href="#RobotFlow:Generic">RobotFlow:Generic</a><br><br>Return to: <a href="#Categories of available FlowDesigner nodes">Categories of available FlowDesigner nodes</a><br><br><hr><br><br><br><p><a NAME="Pioneer2Connect"></a> <h3> Pioneer2Connect (RobotFlow:Pioneer2)</h3> --- 1080,1084 ---- </tr> </table> ! <br>See next category: <a href="#RobotFlow:MARIE:zdeprecated">RobotFlow:MARIE:zdeprecated</a><br><br>Return to: <a href="#Categories of available FlowDesigner nodes">Categories of available FlowDesigner nodes</a><br><br><hr><br><br><br><p><a NAME="Pioneer2Connect"></a> <h3> Pioneer2Connect (RobotFlow:Pioneer2)</h3> *************** *** 1050,1054 **** <td WIDTH="15%">MotorEnable</td><td WIDTH="15%">bool</td><td WIDTH="40%">Enable motor on startup if TRUE, otherwise the motor must be enable manually (white button on Pioneer2</td></tr><td WIDTH="15%">SonarEnable</td><td WIDTH="15%">bool</td><td WIDTH="40%">Enable sonar on startup if TRUE, otherwise the sonar are not activated.</td></tr><td WIDTH="15%">SERIAL_PORT</td><td WIDTH="15%">string</td><td WIDTH="40%">Serial port for P2OS comm.</td></tr></tr> </table> ! <br>Return to: <a href="#RobotFlow:Pioneer2">RobotFlow:Pioneer2</a><br><br>See next category: <a href="#RobotFlow:Generic">RobotFlow:Generic</a><br><br>Return to: <a href="#Categories of available FlowDesigner nodes">Categories of available FlowDesigner nodes</a><br><br><p><a NAME="Pioneer2Gripper"></a> <h3> Pioneer2Gripper (RobotFlow:Pioneer2)</h3> --- 1101,1105 ---- <td WIDTH="15%">MotorEnable</td><td WIDTH="15%">bool</td><td WIDTH="40%">Enable motor on startup if TRUE, otherwise the motor must be enable manually (white button on Pioneer2</td></tr><td WIDTH="15%">SonarEnable</td><td WIDTH="15%">bool</td><td WIDTH="40%">Enable sonar on startup if TRUE, otherwise the sonar are not activated.</td></tr><td WIDTH="15%">SERIAL_PORT</td><td WIDTH="15%">string</td><td WIDTH="40%">Serial port for P2OS comm.</td></tr></tr> </table> ! <br>Return to: <a href="#RobotFlow:Pioneer2">RobotFlow:Pioneer2</a><br><br>See next category: <a href="#RobotFlow:MARIE:zdeprecated">RobotFlow:MARIE:zdeprecated</a><br><br>Return to: <a href="#Categories of available FlowDesigner nodes">Categories of available FlowDesigner nodes</a><br><br><p><a NAME="Pioneer2Gripper"></a> <h3> Pioneer2Gripper (RobotFlow:Pioneer2)</h3> *************** *** 1071,1075 **** <td>none</td><td>none</td><td>none</td></tr> </table> ! <br>Return to: <a href="#RobotFlow:Pioneer2">RobotFlow:Pioneer2</a><br><br>See next category: <a href="#RobotFlow:Generic">RobotFlow:Generic</a><br><br>Return to: <a href="#Categories of available FlowDesigner nodes">Categories of available FlowDesigner nodes</a><br><br><p><a NAME="Pioneer2GripperState"></a> <h3> Pioneer2GripperState (RobotFlow:Pioneer2)</h3> --- 1122,1126 ---- <td>none</td><td>none</td><td>none</td></tr> </table> ! <br>Return to: <a href="#RobotFlow:Pioneer2">RobotFlow:Pioneer2</a><br><br>See next category: <a href="#RobotFlow:MARIE:zdeprecated">RobotFlow:MARIE:zdeprecated</a><br><br>Return to: <a href="#Categories of available FlowDesigner nodes">Categories of available FlowDesigner nodes</a><br><br><p><a NAME="Pioneer2GripperState"></a> <h3> Pioneer2GripperState (RobotFlow:Pioneer2)</h3> *************** *** 1092,1096 **** <td>none</td><td>none</td><td>none</td></tr> </table> ! <br>Return to: <a href="#RobotFlow:Pioneer2">RobotFlow:Pioneer2</a><br><br>See next category: <a href="#RobotFlow:Generic">RobotFlow:Generic</a><br><br>Return to: <a href="#Categories of available FlowDesigner nodes">Categories of available FlowDesigner nodes</a><br><br><p><a NAME="Pioneer2RotationIn"></a> <h3> Pioneer2RotationIn (RobotFlow:Pioneer2)</h3> --- 1143,1147 ---- <td>none</td><td>none</td><td>none</td></tr> </table> ! <br>Return to: <a href="#RobotFlow:Pioneer2">RobotFlow:Pioneer2</a><br><br>See next category: <a href="#RobotFlow:MARIE:zdeprecated">RobotFlow:MARIE:zdeprecated</a><br><br>Return to: <a href="#Categories of available FlowDesigner nodes">Categories of available FlowDesigner nodes</a><br><br><p><a NAME="Pioneer2RotationIn"></a> <h3> Pioneer2RotationIn (RobotFlow:Pioneer2)</h3> *************** *** 1113,1117 **** <td WIDTH="15%">ROTATION_ACCELERATION</td><td WIDTH="15%">int</td><td WIDTH="40%">Rotational acceleration (deg/s2). Default value is for P2DX.</td></tr><td WIDTH="15%">MAX_ROTATION_VELOCITY</td><td WIDTH="15%">int</td><td WIDTH="40%">Maximum rotational velocity (deg/s). Default value is for P2DX.</td></tr></tr> </table> ! <br>Return to: <a href="#RobotFlow:Pioneer2">RobotFlow:Pioneer2</a><br><br>See next category: <a href="#RobotFlow:Generic">RobotFlow:Generic</a><br><br>Return to: <a href="#Categories of available FlowDesigner nodes">Categories of available FlowDesigner nodes</a><br><br><p><a NAME="Pioneer2SIP"></a> <h3> Pioneer2SIP (RobotFlow:Pioneer2)</h3> --- 1164,1168 ---- <td WIDTH="15%">ROTATION_ACCELERATION</td><td WIDTH="15%">int</td><td WIDTH="40%">Rotational acceleration (deg/s2). Default value is for P2DX.</td></tr><td WIDTH="15%">MAX_ROTATION_VELOCITY</td><td WIDTH="15%">int</td><td WIDTH="40%">Maximum rotational velocity (deg/s). Default value is for P2DX.</td></tr></tr> </table> ! <br>Return to: <a href="#RobotFlow:Pioneer2">RobotFlow:Pioneer2</a><br><br>See next category: <a href="#RobotFlow:MARIE:zdeprecated">RobotFlow:MARIE:zdeprecated</a><br><br>Return to: <a href="#Categories of available FlowDesigner nodes">Categories of available FlowDesigner nodes</a><br><br><p><a NAME="Pioneer2SIP"></a> <h3> Pioneer2SIP (RobotFlow:Pioneer2)</h3> *************** *** 1134,1138 **** <td>none</td><td>none</td><td>none</td></tr> </table> ! <br>Return to: <a href="#RobotFlow:Pioneer2">RobotFlow:Pioneer2</a><br><br>See next category: <a href="#RobotFlow:Generic">RobotFlow:Generic</a><br><br>Return to: <a href="#Categories of available FlowDesigner nodes">Categories of available FlowDesigner nodes</a><br><br><p><a NAME="Pioneer2SIPExtract"></a> <h3> Pioneer2SIPExtract (RobotFlow:Pioneer2)</h3> --- 1185,1189 ---- <td>none</td><td>none</td><td>none</td></tr> </table> ! <br>Return to: <a href="#RobotFlow:Pioneer2">RobotFlow:Pioneer2</a><br><br>See next category: <a href="#RobotFlow:MARIE:zdeprecated">RobotFlow:MARIE:zdeprecated</a><br><br>Return to: <a href="#Categories of available FlowDesigner nodes">Categories of available FlowDesigner nodes</a><br><br><p><a NAME="Pioneer2SIPExtract"></a> <h3> Pioneer2SIPExtract (RobotFlow:Pioneer2)</h3> *************** *** 1155,1159 **** <td>none</td><td>none</td><td>none</td></tr> </table> ! <br>Return to: <a href="#RobotFlow:Pioneer2">RobotFlow:Pioneer2</a><br><br>See next category: <a href="#RobotFlow:Generic">RobotFlow:Generic</a><br><br>Return to: <a href="#Categories of available FlowDesigner nodes">Categories of available FlowDesigner nodes</a><br><br><p><a NAME="Pioneer2Sonars"></a> <h3> Pioneer2Sonars (RobotFlow:Pioneer2)</h3> --- 1206,1210 ---- <td>none</td><td>none</td><td>none</td></tr> </table> ! <br>Return to: <a href="#RobotFlow:Pioneer2">RobotFlow:Pioneer2</a><br><br>See next category: <a href="#RobotFlow:MARIE:zdeprecated">RobotFlow:MARIE:zdeprecated</a><br><br>Return to: <a href="#Categories of available FlowDesigner nodes">Categories of available FlowDesigner nodes</a><br><br><p><a NAME="Pioneer2Sonars"></a> <h3> Pioneer2Sonars (RobotFlow:Pioneer2)</h3> *************** *** 1176,1180 **** <td>none</td><td>none</td><td>none</td></tr> </table> ! <br>Return to: <a href="#RobotFlow:Pioneer2">RobotFlow:Pioneer2</a><br><br>See next category: <a href="#RobotFlow:Generic">RobotFlow:Generic</a><br><br>Return to: <a href="#Categories of available FlowDesigner nodes">Categories of available FlowDesigner nodes</a><br><br><p><a NAME="Pioneer2VelocityIn"></a> <h3> Pioneer2VelocityIn (RobotFlow:Pioneer2)</h3> --- 1227,1231 ---- <td>none</td><td>none</td><td>none</td></tr> </table> ! <br>Return to: <a href="#RobotFlow:Pioneer2">RobotFlow:Pioneer2</a><br><br>See next category: <a href="#RobotFlow:MARIE:zdeprecated">RobotFlow:MARIE:zdeprecated</a><br><br>Return to: <a href="#Categories of available FlowDesigner nodes">Categories of available FlowDesigner nodes</a><br><br><p><a NAME="Pioneer2VelocityIn"></a> <h3> Pioneer2VelocityIn (RobotFlow:Pioneer2)</h3> *************** *** 1197,1201 **** <td WIDTH="15%">MAX_TRANS_VEL</td><td WIDTH="15%">int</td><td WIDTH="40%">No description available</td></tr><td WIDTH="15%">MAX_TRANS_ACC</td><td WIDTH="15%">int</td><td WIDTH="40%">No description available</td></tr></tr> </table> ! <br>Return to: <a href="#RobotFlow:Pioneer2">RobotFlow:Pioneer2</a><br><br>See next category: <a href="#RobotFlow:Generic">RobotFlow:Generic</a><br><br>Return to: <a href="#Categories of available FlowDesigner nodes">Categories of available FlowDesigner nodes</a><br><br><p><a NAME="Pioneer2VelocityOut"></a> <h3> Pioneer2VelocityOut (RobotFlow:Pioneer2)</h3> --- 1248,1252 ---- <td WIDTH="15%">MAX_TRANS_VEL</td><td WIDTH="15%">int</td><td WIDTH="40%">No description available</td></tr><td WIDTH="15%">MAX_TRANS_ACC</td><td WIDTH="15%">int</td><td WIDTH="40%">No description available</td></tr></tr> </table> ! <br>Return to: <a href="#RobotFlow:Pioneer2">RobotFlow:Pioneer2</a><br><br>See next category: <a href="#RobotFlow:MARIE:zdeprecated">RobotFlow:MARIE:zdeprecated</a><br><br>Return to: <a href="#Categories of available FlowDesigner nodes">Categories of available FlowDesigner nodes</a><br><br><p><a NAME="Pioneer2VelocityOut"></a> <h3> Pioneer2VelocityOut (RobotFlow:Pioneer2)</h3> *************** *** 1218,1222 **** <td>none</td><td>none</td><td>none</td></tr> </table> ! <br>Return to: <a href="#RobotFlow:Pioneer2">RobotFlow:Pioneer2</a><br><br>See next category: <a href="#RobotFlow:Generic">RobotFlow:Generic</a><br><br>Return to: <a href="#Categories of available FlowDesigner nodes">Categories of available FlowDesigner nodes</a><br><br><p><a NAME="Pioneer2Voltage"></a> <h3> Pioneer2Voltage (RobotFlow:Pioneer2)</h3> --- 1269,1273 ---- <td>none</td><td>none</td><td>none</td></tr> </table> ! <br>Return to: <a href="#RobotFlow:Pioneer2">RobotFlow:Pioneer2</a><br><br>See next category: <a href="#RobotFlow:MARIE:zdeprecated">RobotFlow:MARIE:zdeprecated</a><br><br>Return to: <a href="#Categories of available FlowDesigner nodes">Categories of available FlowDesigner nodes</a><br><br><p><a NAME="Pioneer2Voltage"></a> <h3> Pioneer2Voltage (RobotFlow:Pioneer2)</h3> *************** *** 1239,1243 **** <td WIDTH="15%">LowVoltageTrigger</td><td WIDTH="15%">float</td><td WIDTH="40%">Low voltage trigger (on).</td></tr><td WIDTH="15%">LowVoltageReset</td><td WIDTH="15%">float</td><td WIDTH="40%">Low voltage trigger (off).</td></tr></tr> </table> ! <br>Return to: <a href="#RobotFlow:Pioneer2">RobotFlow:Pioneer2</a><br><br>See next category: <a href="#RobotFlow:Generic">RobotFlow:Generic</a><br><br>Return to: <a href="#Categories of available FlowDesigner nodes">Categories of available FlowDesigner nodes</a><br><br><p><a NAME="Pioneer2xyPos"></a> <h3> Pioneer2xyPos (RobotFlow:Pioneer2)</h3> --- 1290,1294 ---- <td WIDTH="15%">LowVoltageTrigger</td><td WIDTH="15%">float</td><td WIDTH="40%">Low voltage trigger (on).</td></tr><td WIDTH="15%">LowVoltageReset</td><td WIDTH="15%">float</td><td WIDTH="40%">Low voltage trigger (off).</td></tr></tr> </table> ! <br>Return to: <a href="#RobotFlow:Pioneer2">RobotFlow:Pioneer2</a><br><br>See next category: <a href="#RobotFlow:MARIE:zdeprecated">RobotFlow:MARIE:zdeprecated</a><br><br>Return to: <a href="#Categories of available FlowDesigner nodes">Categories of available FlowDesigner nodes</a><br><br><p><a NAME="Pioneer2xyPos"></a> <h3> Pioneer2xyPos (RobotFlow:Pioneer2)</h3> *************** *** 1260,1264 **** <td WIDTH="15%">RESET_DIST</td><td WIDTH="10%">any</td><td WIDTH="40%">No description available</td></tr> </table> ! <br>Return to: <a href="#RobotFlow:Pioneer2">RobotFlow:Pioneer2</a><br><br>See next category: <a href="#RobotFlow:Generic">RobotFlow:Generic</a><br><br>Return to: <a href="#Categories of available FlowDesigner nodes">Categories of available FlowDesigner nodes</a><br><p><a NAME="RobotFlow:Generic"></a><h2><br><br><br><br><br><br><hr><br>* RobotFlow:Generic (1)</h2><h3>List of available FlowDesigner nodes </h3> <table BORDER COLS=3 WIDTH="60% " NOSAVE > --- 1311,1623 ---- <td WIDTH="15%">RESET_DIST</td><td WIDTH="10%">any</td><td WIDTH="40%">No description available</td></tr> </table> ! <br>Return to: <a href="#RobotFlow:Pioneer2">RobotFlow:Pioneer2</a><br><br>See next category: <a href="#RobotFlow:MARIE:zdeprecated">RobotFlow:MARIE:zdeprecated</a><br><br>Return to: <a href="#Categories of available FlowDesigner nodes">Categories of available FlowDesigner nodes</a><br><p><a NAME="RobotFlow:MARIE:zdeprecated"></a><h2><br><br><br><br><br><br><hr><br>* RobotFlow:MARIE:zdeprecated (2)</h2><h3>List of available FlowDesigner nodes </h3> ! ! <table BORDER COLS=3 WIDTH="60% " NOSAVE > ! ! <tr><td>* <a href="#MarieLoad">MarieLoad</a></td> ! <td>* <a href="#MarieSave">MarieSave</a></td> ! </tr> ! </table> ! <br>See next category: <a href="#RobotFlow:MARIE:IO">RobotFlow:MARIE:IO</a><br><br>Return to: <a href="#Categories of available FlowDesigner nodes">Categories of available FlowDesigner nodes</a><br><br><hr><br><br><br><p><a NAME="MarieLoad"></a> ! <h3> ! MarieLoad (RobotFlow:MARIE:zdeprecated)</h3> ! Load an object from the stream, pease use MariePull or MariePeak<br> ! <table BORDER COLS=4 WIDTH="75%" NOSAVE > ! <tr> ! <td WIDTH="10%"></td> ! <th WIDTH="15%">NAME</th> ! <th WIDTH="10%">TYPE</th> ! <th WIDTH="40%">MEANING</th> ! </tr> ! <tr NOSAVE> ! <th WIDTH="10%">Inputs</th> ! <td WIDTH="15%">STREAM</td><td WIDTH="10%">Stream</td><td WIDTH="40%">The input stream</td></tr> ! <tr NOSAVE> ! <th WIDTH="10%">Outputs</th> ! <td WIDTH="15%">OUTPUT</td><td WIDTH="10%">any</td><td WIDTH="40%">Object</td></tr> ! <tr NOSAVE> ! <th WIDTH="10%">Parameters</th> ! <td>none</td><td>none</td><td>none</td></tr> ! </table> ! <br>Return to: <a href="#RobotFlow:MARIE:zdeprecated">RobotFlow:MARIE:zdeprecated</a><br><br>See next category: <a href="#RobotFlow:MARIE:IO">RobotFlow:MARIE:IO</a><br><br>Return to: <a href="#Categories of available FlowDesigner nodes">Categories of available FlowDesigner nodes</a><br><br><p><a NAME="MarieSave"></a> ! <h3> ! MarieSave (RobotFlow:MARIE:zdeprecated)</h3> ! Save an object to a stream, please use MariePush<br> ! <table BORDER COLS=4 WIDTH="75%" NOSAVE > ! <tr> ! <td WIDTH="10%"></td> ! <th WIDTH="15%">NAME</th> ! <th WIDTH="10%">TYPE</th> ! <th WIDTH="40%">MEANING</th> ! </tr> ! <tr NOSAVE> ! <th WIDTH="10%" ROWSPAN="#2">Inputs</th> ! <td WIDTH="15%">INPUT</td><td WIDTH="15%">any</td><td WIDTH="40%">Object</td></tr><td WIDTH="15%">STREAM</td><td WIDTH="15%">Stream</td><td WIDTH="40%">Stream to write to</td></tr></tr> ! <tr NOSAVE> ! <th WIDTH="10%">Outputs</th> ! <td WIDTH="15%">OUTPUT</td><td WIDTH="10%">any</td><td WIDTH="40%">Same Object</td></tr> ! <tr NOSAVE> ! <th WIDTH="10%">Parameters</th> ! <td>none</td><td>none</td><td>none</td></tr> ! </table> ! <br>Return to: <a href="#RobotFlow:MARIE:zdeprecated">RobotFlow:MARIE:zdeprecated</a><br><br>See next category: <a href="#RobotFlow:MARIE:IO">RobotFlow:MARIE:IO</a><br><br>Return to: <a href="#Categories of available FlowDesigner nodes">Categories of available FlowDesigner nodes</a><br><p><a NAME="RobotFlow:MARIE:IO"></a><h2><br><br><br><br><br><br><hr><br>* RobotFlow:MARIE:IO (3)</h2><h3>List of available FlowDesigner nodes </h3> ! ! <table BORDER COLS=3 WIDTH="60% " NOSAVE > ! ! <tr><td>* <a href="#MariePeak">MariePeak</a></td> ! <td>* <a href="#MariePull">MariePull</a></td> ! <td>* <a href="#MariePush">MariePush</a></td></tr> ! </table> ! <br>See next category: <a href="#RobotFlow:MARIE:DATA">RobotFlow:MARIE:DATA</a><br><br>Return to: <a href="#Categories of available FlowDesigner nodes">Categories of available FlowDesigner nodes</a><br><br><hr><br><br><br><p><a NAME="MariePeak"></a> ! <h3> ! MariePeak (RobotFlow:MARIE:IO)</h3> ! Peak an object from the stream (non blocking)<br> ! <table BORDER COLS=4 WIDTH="75%" NOSAVE > ! <tr> ! <td WIDTH="10%"></td> ! <th WIDTH="15%">NAME</th> ! <th WIDTH="10%">TYPE</th> ! <th WIDTH="40%">MEANING</th> ! </tr> ! <tr NOSAVE> ! <th WIDTH="10%">Inputs</th> ! <td WIDTH="15%">STREAM</td><td WIDTH="10%">Stream</td><td WIDTH="40%">The input stream</td></tr> ! <tr NOSAVE> ! <th WIDTH="10%">Outputs</th> ! <td WIDTH="15%">OUTPUT</td><td WIDTH="10%">any</td><td WIDTH="40%">Object</td></tr> ! <tr NOSAVE> ! <th WIDTH="10%">Parameters</th> ! <td>none</td><td>none</td><td>none</td></tr> ! </table> ! <br>Return to: <a href="#RobotFlow:MARIE:IO">RobotFlow:MARIE:IO</a><br><br>See next category: <a href="#RobotFlow:MARIE:DATA">RobotFlow:MARIE:DATA</a><br><br>Return to: <a href="#Categories of available FlowDesigner nodes">Categories of available FlowDesigner nodes</a><br><br><p><a NAME="MariePull"></a> ! <h3> ! MariePull (RobotFlow:MARIE:IO)</h3> ! Pull an object from the stream (blocking)<br> ! <table BORDER COLS=4 WIDTH="75%" NOSAVE > ! <tr> ! <td WIDTH="10%"></td> ! <th WIDTH="15%">NAME</th> ! <th WIDTH="10%">TYPE</th> ! <th WIDTH="40%">MEANING</th> ! </tr> ! <tr NOSAVE> ! <th WIDTH="10%">Inputs</th> ! <td WIDTH="15%">STREAM</td><td WIDTH="10%">Stream</td><td WIDTH="40%">The input stream</td></tr> ! <tr NOSAVE> ! <th WIDTH="10%">Outputs</th> ! <td WIDTH="15%">OUTPUT</td><td WIDTH="10%">any</td><td WIDTH="40%">Object</td></tr> ! <tr NOSAVE> ! <th WIDTH="10%">Parameters</th> ! <td>none</td><td>none</td><td>none</td></tr> ! </table> ! <br>Return to: <a href="#RobotFlow:MARIE:IO">RobotFlow:MARIE:IO</a><br><br>See next category: <a href="#RobotFlow:MARIE:DATA">RobotFlow:MARIE:DATA</a><br><br>Return to: <a href="#Categories of available FlowDesigner nodes">Categories of available FlowDesigner nodes</a><br><br><p><a NAME="MariePush"></a> ! <h3> ! MariePush (RobotFlow:MARIE:IO)</h3> ! Save an object<br> ! <table BORDER COLS=4 WIDTH="75%" NOSAVE > ! <tr> ! <td WIDTH="10%"></td> ! <th WIDTH="15%">NAME</th> ! <th WIDTH="10%">TYPE</th> ! <th WIDTH="40%">MEANING</th> ! </tr> ! <tr NOSAVE> ! <th WIDTH="10%" ROWSPAN="#2">Inputs</th> ! <td WIDTH="15%">INPUT</td><td WIDTH="15%">any</td><td WIDTH="40%">Object</td></tr><td WIDTH="15%">STREAM</td><td WIDTH="15%">Stream</td><td WIDTH="40%">Stream to write to</td></tr></tr> ! <tr NOSAVE> ! <th WIDTH="10%">Outputs</th> ! <td WIDTH="15%">OUTPUT</td><td WIDTH="10%">any</td><td WIDTH="40%">Same Object</td></tr> ! <tr NOSAVE> ! <th WIDTH="10%">Parameters</th> ! <td>none</td><td>none</td><td>none</td></tr> ! </table> ! <br>Return to: <a href="#RobotFlow:MARIE:IO">RobotFlow:MARIE:IO</a><br><br>See next category: <a href="#RobotFlow:MARIE:DATA">RobotFlow:MARIE:DATA</a><br><br>Return to: <a href="#Categories of available FlowDesigner nodes">Categories of available FlowDesigner nodes</a><br><p><a NAME="RobotFlow:MARIE:DATA"></a><h2><br><br><br><br><br><br><hr><br>* RobotFlow:MARIE:DATA (5)</h2><h3>List of available FlowDesigner nodes </h3> ! ! <table BORDER COLS=3 WIDTH="60% " NOSAVE > ! ! <tr><td>* <a href="#MarieDataCamera">MarieDataCamera</a></td> ! <td>* <a href="#MarieDataNull">MarieDataNull</a></td> ! <td>* <a href="#MarieDataSonar">MarieDataSonar</a></td></tr> ! <tr><td>* <a href="#MarieDataLaser">MarieDataLaser</a></td> ! <td>* <a href="#MarieDataOdometry">MarieDataOdometry</a></td> ! </tr> ! </table> ! <br>See next category: <a href="#RobotFlow:MARIE:COMMAND">RobotFlow:MARIE:COMMAND</a><br><br>Return to: <a href="#Categories of available FlowDesigner nodes">Categories of available FlowDesigner nodes</a><br><br><hr><br><br><br><p><a NAME="MarieDataCamera"></a> ! <h3> ! MarieDataCamera (RobotFlow:MARIE:DATA)</h3> ! Save an object<br> ! <table BORDER COLS=4 WIDTH="75%" NOSAVE > ! <tr> ! <td WIDTH="10%"></td> ! <th WIDTH="15%">NAME</th> ! <th WIDTH="10%">TYPE</th> ! <th WIDTH="40%">MEANING</th> ! </tr> ! <tr NOSAVE> ! <th WIDTH="10%">Inputs</th> ! <td WIDTH="15%">DATA_CAMERA</td><td WIDTH="10%">MarieDataCamera</td><td WIDTH="40%">MarieDataCamera Object</td></tr> ! <tr NOSAVE> ! <th WIDTH="10%" ROWSPAN="#7">Outputs</th> ! <td WIDTH="15%">PAN</td><td WIDTH="15%">int</td><td WIDTH="40%">Pan of the camera</td></tr><td WIDTH="15%">TILT</td><td WIDTH="15%">int </td><td WIDTH="40%">Tilt of the camera</td></tr><td WIDTH="15%">ZOOM</td><td WIDTH="15%">int</td><td WIDTH="40%">Zoom of the camera</td></tr><td WIDTH="15%">IMAGE_WIDTH</td><td WIDTH="15%">int</td><td WIDTH="40%">image width from the camera</td></tr><td WIDTH="15%">IMAGE_HEIGHT</td><td WIDTH="15%">int </td><td WIDTH="40%">image height from the camera</td></tr><td WIDTH="15%">IMAGE_FORMAT</td><td WIDTH="15%">string</td><td WIDTH="40%">format of the image</td></tr><td WIDTH="15%">IMAGE</td><td WIDTH="15%">Image</td><td WIDTH="40%">the image data</td></tr></tr> ! <tr NOSAVE> ! <th WIDTH="10%">Parameters</th> ! <td>none</td><td>none</td><td>none</td></tr> ! </table> ! <br>Return to: <a href="#RobotFlow:MARIE:DATA">RobotFlow:MARIE:DATA</a><br><br>See next category: <a href="#RobotFlow:MARIE:COMMAND">RobotFlow:MARIE:COMMAND</a><br><br>Return to: <a href="#Categories of available FlowDesigner nodes">Categories of available FlowDesigner nodes</a><br><br><p><a NAME="MarieDataLaser"></a> ! <h3> ! MarieDataLaser (RobotFlow:MARIE:DATA)</h3> ! Save an object<br> ! <table BORDER COLS=4 WIDTH="75%" NOSAVE > ! <tr> ! <td WIDTH="10%"></td> ! <th WIDTH="15%">NAME</th> ! <th WIDTH="10%">TYPE</th> ! <th WIDTH="40%">MEANING</th> ! </tr> ! <tr NOSAVE> ! <th WIDTH="10%">Inputs</th> ! <td WIDTH="15%">DATA_LASER</td><td WIDTH="10%">MarieDataLaser</td><td WIDTH="40%">MarieDataLaser object</td></tr> ! <tr NOSAVE> ! <th WIDTH="10%">Outputs</th> ! <td WIDTH="15%">RANGES</td><td WIDTH="10%">Vector<int></td><td WIDTH="40%">Range contained in the MarieDataLaser object</td></tr> ! <tr NOSAVE> ! <th WIDTH="10%">Parameters</th> ! <td>none</td><td>none</td><td>none</td></tr> ! </table> ! <br>Return to: <a href="#RobotFlow:MARIE:DATA">RobotFlow:MARIE:DATA</a><br><br>See next category: <a href="#RobotFlow:MARIE:COMMAND">RobotFlow:MARIE:COMMAND</a><br><br>Return to: <a href="#Categories of available FlowDesigner nodes">Categories of available FlowDesigner nodes</a><br><br><p><a NAME="MarieDataNull"></a> ! <h3> ! MarieDataNull (RobotFlow:MARIE:DATA)</h3> ! Return MarieDataNull object<br> ! <table BORDER COLS=4 WIDTH="75%" NOSAVE > ! <tr> ! <td WIDTH="10%"></td> ! <th WIDTH="15%">NAME</th> ! <th WIDTH="10%">TYPE</th> ! <th WIDTH="40%">MEANING</th> ! </tr> ! <tr NOSAVE> ! <th WIDTH="10%">Inputs</th> ! <td>none</td><td>none</td><td>none</td></tr> ! <tr NOSAVE> ! <th WIDTH="10%">Outputs</th> ! <td WIDTH="15%">DATANULL</td><td WIDTH="10%">int</td><td WIDTH="40%">MARIE NullData object</td></tr> ! <tr NOSAVE> ! <th WIDTH="10%">Parameters</th> ! <td>none</td><td>none</td><td>none</td></tr> ! </table> ! <br>Return to: <a href="#RobotFlow:MARIE:DATA">RobotFlow:MARIE:DATA</a><br><br>See next category: <a href="#RobotFlow:MARIE:COMMAND">RobotFlow:MARIE:COMMAND</a><br><br>Return to: <a href="#Categories of available FlowDesigner nodes">Categories of available FlowDesigner nodes</a><br><br><p><a NAME="MarieDataOdometry"></a> ! <h3> ! MarieDataOdometry (RobotFlow:MARIE:DATA)</h3> ! Read content of MarieDataOdometry<br> ! <table BORDER COLS=4 WIDTH="75%" NOSAVE > ! <tr> ! <td WIDTH="10%"></td> ! <th WIDTH="15%">NAME</th> ! <th WIDTH="10%">TYPE</th> ! <th WIDTH="40%">MEANING</th> ! </tr> ! <tr NOSAVE> ! <th WIDTH="10%">Inputs</th> ! <td WIDTH="15%">ODOMETRY_DATA</td><td WIDTH="10%">MarieDataOdometry</td><td WIDTH="40%">The Odometry object</td></tr> ! <tr NOSAVE> ! <th WIDTH="10%" ROWSPAN="#9">Outputs</th> ! <td WIDTH="15%">XPOS</td><td WIDTH="15%">int</td><td WIDTH="40%">X axis position</td></tr><td WIDTH="15%">YPOS</td><td WIDTH="15%">int</td><td WIDTH="40%">Y axis position</td></tr><td WIDTH="15%">ZPOS</td><td WIDTH="15%">int</td><td WIDTH="40%">Z axis position</td></tr><td WIDTH="15%">YAW</td><td WIDTH="15%">int</td><td WIDTH="40%">YAW angle </td></tr><td WIDTH="15%">PITCH</td><td WIDTH="15%">int</td><td WIDTH="40%">PITCH angle </td></tr><td WIDTH="15%">ROLL</td><td WIDTH="15%">int</td><td WIDTH="40%">ROLL angle</td></tr><td WIDTH="15%">LINEAR_SPEED</td><td WIDTH="15%">int</td><td WIDTH="40%">linear speed (X-Y)</td></tr><td WIDTH="15%">SIDE_SPEED</td><td WIDTH="15%">int</td><td WIDTH="40%">translational speed (X-Y)</td></tr><td WIDTH="15%">ROTATION_SPEED</td><td WIDTH="15%">int</td><td WIDTH="40%">rotation speed (X-Y)</td></tr></tr> ! <tr NOSAVE> ! <th WIDTH="10%">Parameters</th> ! <td>none</td><td>none</td><td>none</td></tr> ! </table> ! <br>Return to: <a href="#RobotFlow:MARIE:DATA">RobotFlow:MARIE:DATA</a><br><br>See next category: <a href="#RobotFlow:MARIE:COMMAND">RobotFlow:MARIE:COMMAND</a><br><br>Return to: <a href="#Categories of available FlowDesigner nodes">Categories of available FlowDesigner nodes</a><br><br><p><a NAME="MarieDataSonar"></a> ! <h3> ! MarieDataSonar (RobotFlow:MARIE:DATA)</h3> ! Save an object<br> ! <table BORDER COLS=4 WIDTH="75%" NOSAVE > ! <tr> ! <td WIDTH="10%"></td> ! <th WIDTH="15%">NAME</th> ! <th WIDTH="10%">TYPE</th> ! <th WIDTH="40%">MEANING</th> ! </tr> ! <tr NOSAVE> ! <th WIDTH="10%">Inputs</th> ! <td WIDTH="15%">DATA_SONAR</td><td WIDTH="10%">MarieDataLaser</td><td WIDTH="40%">MarieDataLaser object</td></tr> ! <tr NOSAVE> ! <th WIDTH="10%">Outputs</th> ! <td WIDTH="15%">RANGES</td><td WIDTH="10%">Vector<int></td><td WIDTH="40%">Range contained in the MarieDataSonar object</td></tr> ! <tr NOSAVE> ! <th WIDTH="10%">Parameters</th> ! <td>none</td><td>none</td><td>none</td></tr> ! </table> ! <br>Return to: <a href="#RobotFlow:MARIE:DATA">RobotFlow:MARIE:DATA</a><br><br>See next category: <a href="#RobotFlow:MARIE:COMMAND">RobotFlow:MARIE:COMMAND</a><br><br>Return to: <a href="#Categories of available FlowDesigner nodes">Categories of available FlowDesigner nodes</a><br><p><a NAME="RobotFlow:MARIE:COMMAND"></a><h2><br><br><br><br><br><br><hr><br>* RobotFlow:MARIE:COMMAND (3)</h2><h3>List of available FlowDesigner nodes </h3> ! ! <table BORDER COLS=3 WIDTH="60% " NOSAVE > ! ! <tr><td>* <a href="#MarieCommandBehavior">MarieCommandBehavior</a></td> ! <td>* <a href="#MarieCommandCamera">MarieCommandCamera</a></td> ! <td>* <a href="#MarieCommandMotor">MarieCommandMotor</a></td></tr> ! </table> ! <br>See next category: <a href="#RobotFlow:Generic">RobotFlow:Generic</a><br><br>Return to: <a href="#Categories of available FlowDesigner nodes">Categories of available FlowDesigner nodes</a><br><br><hr><br><br><br><p><a NAME="MarieCommandBehavior"></a> ! <h3> ! MarieCommandBehavior (RobotFlow:MARIE:COMMAND)</h3> ! Save an object<br> ! <table BORDER COLS=4 WIDTH="75%" NOSAVE > ! <tr> ! <td WIDTH="10%"></td> ! <th WIDTH="15%">NAME</th> ! <th WIDTH="10%">TYPE</th> ! <th WIDTH="40%">MEANING</th> ! </tr> ! <tr NOSAVE> ! <th WIDTH="10%" ROWSPAN="#3">Inputs</th> ! <td WIDTH="15%">BEHAVIOR_COMMAND</td><td WIDTH="15%">MarieCommandBehavior</td><td WIDTH="40%">Input BehaviorCommand data object</td></tr><td WIDTH="15%">BEHAVIOR_NAME</td><td WIDTH="15%">String</td><td WIDTH="40%">The behavior name that will be activated/deactivated</td></tr><td WIDTH="15%">BEHAVIOR_ACTIVATION</td><td WIDTH="15%">Bool</td><td WIDTH="40%">true if the specified behavior is activated</td></tr></tr> ! <tr NOSAVE> ! <th WIDTH="10%" ROWSPAN="#2">Outputs</th> ! <td WIDTH="15%">BEHAVIOR_COMMAND</td><td WIDTH="15%">MarieCommandBahavior</td><td WIDTH="40%">Output BehaviorCommand data object</td></tr><td WIDTH="15%">ROBOTFLOW_ACTIVATION </td><td WIDTH="15%">Vector<int></td><td WIDTH="40%">RobotFlow activation vector</td></tr></tr> ! <tr NOSAVE> ! <th WIDTH="10%">Parameters</th> ! <td>none</td><td>none</td><td>none</td></tr> ! </table> ! <br>Return to: <a href="#RobotFlow:MARIE:COMMAND">RobotFlow:MARIE:COMMAND</a><br><br>See next category: <a href="#RobotFlow:Generic">RobotFlow:Generic</a><br><br>Return to: <a href="#Categories of available FlowDesigner nodes">Categories of available FlowDesigner nodes</a><br><br><p><a NAME="MarieCommandCamera"></a> ! <h3> ! MarieCommandCamera (RobotFlow:MARIE:COMMAND)</h3> ! Read <br> ! <table BORDER COLS=4 WIDTH="75%" NOSAVE > ! <tr> ! <td WIDTH="10%"></td> ! <th WIDTH="15%">NAME</th> ! <th WIDTH="10%">TYPE</th> ! <th WIDTH="40%">MEANING</th> ! </tr> ! <tr NOSAVE> ! <th WIDTH="10%" ROWSPAN="#6">Inputs</th> ! <td WIDTH="15%">COMMAND_CAMERA</td><td WIDTH="15%">Input MarieCommandCamera</td><td WIDTH="40%">input ComandCamera, nilObject if not used</td></tr><td WIDTH="15%">BRIGHTNESS</td><td WIDTH="15%">int</td><td WIDTH="40%">input brightness, nilObject if not used</td></tr><td WIDTH="15%">CONTRAST</td><td WIDTH="15%">int</td><td WIDTH="40%">input contrast, nilObject if not used</td></tr><td WIDTH="15%">PAN</td><td WIDTH="15%">int </td><td WIDTH="40%">input pan, nilObject if not used</td></tr><td WIDTH="15%">TILT</td><td WIDTH="15%">int</td><td WIDTH="40%">input tilt, nilObject if not used</td></tr><td WIDTH="15%">ZOOM</td><td WIDTH="15%">input zoom, nilObject if not used</td><td WIDTH="40%">No Description Available</td></tr></tr> ! <tr NOSAVE> ! <th WIDTH="10%" ROWSPAN="#6">Outputs</th> ! <td WIDTH="15%">COMMAND_CAMERA</td><td WIDTH="15%">MarieCommandCamera</td><td WIDTH="40%">Output CommandCamera (with new pan,tilt,zoom, brightness, contrast)</td></tr><td WIDTH="15%">BRIGHTNESS</td><td WIDTH="15%">int</td><td WIDTH="40%">output brightness</td></tr><td WIDTH="15%">CONTRAST</td><td WIDTH="15%">int </td><td WIDTH="40%">output contrast</td></tr><td WIDTH="15%">PAN</td><td WIDTH="15%">int</td><td WIDTH="40%">output pan</td></tr><td WIDTH="15%">TILT</td><td WIDTH="15%">int</td><td WIDTH="40%">output tilt</td></tr><td WIDTH="15%">ZOOM</td><td WIDTH="15%">zoom</td><td WIDTH="40%">output zoom</td></tr></tr> ! <tr NOSAVE> ! <th WIDTH="10%">Parameters</th> ! <td>none</td><td>none</td><td>none</td></tr> ! </table> ! <br>Return to: <a href="#RobotFlow:MARIE:COMMAND">RobotFlow:MARIE:COMMAND</a><br><br>See next category: <a href="#RobotFlow:Generic">RobotFlow:Generic</a><br><br>Return to: <a href="#Categories of available FlowDesigner nodes">Categories of available FlowDesigner nodes</a><br><br><p><a NAME="MarieCommandMotor"></a> ! <h3> ! MarieCommandMotor (RobotFlow:MARIE:COMMAND)</h3> ! Save an object<br> ! <table BORDER COLS=4 WIDTH="75%" NOSAVE > ! <tr> ! <td WIDTH="10%"></td> ! <th WIDTH="15%">NAME</th> ! <th WIDTH="10%">TYPE</th> ! <th WIDTH="40%">MEANING</th> ! </tr> ! <tr NOSAVE> ! <th WIDTH="10%" ROWSPAN="#3">Inputs</th> ! <td WIDTH="15%">COMMAND_MOTOR</td><td WIDTH="15%">MarieCommandMotor</td><td WIDTH="40%">CommandMotor data structure input</td></tr><td WIDTH="15%">VELOCITY</td><td WIDTH="15%">int</td><td WIDTH="40%">input velocity</td></tr><td WIDTH="15%">ROTATION</td><td WIDTH="15%">int</td><td WIDTH="40%">input rotation</td></tr></tr> ! <tr NOSAVE> ! <th WIDTH="10%" ROWSPAN="#3">Outputs</th> ! <td WIDTH="15%">COMMAND_MOTOR</td><td WIDTH="15%">MarieCommandMotor</td><td WIDTH="40%">CommandMotor data structure output</td></tr><td WIDTH="15%">VELOCITY</td><td WIDTH="15%">int</td><td WIDTH="40%">output velocity</td></tr><td WIDTH="15%">ROTATION</td><td WIDTH="15%">int</td><td WIDTH="40%">output rotation </td></tr></tr> ! <tr NOSAVE> ! <th WIDTH="10%">Parameters</th> ! <td>none</td><td>none</td><td>none</td></tr> ! </table> ! <br>Return to: <a href="#RobotFlow:MARIE:COMMAND">RobotFlow:MARIE:COMMAND</a><br><br>See next category: <a href="#RobotFlow:Generic">RobotFlow:Generic</a><br><br>Return to: <a href="#Categories of available FlowDesigner nodes">Categories of available FlowDesigner nodes</a><br><p><a NAME="RobotFlow:Generic"></a><h2><br><br><br><br><br><br><hr><br>* RobotFlow:Generic (1)</h2><h3>List of available FlowDesigner nodes </h3> <table BORDER COLS=3 WIDTH="60% " NOSAVE > *************** *** 1410,1415 **** <td WIDTH="15%">IMAGE</td><td WIDTH="10%">Image</td><td WIDTH="40%">The image from the frame grabber.</td></tr> <tr NOSAVE> ! <th WIDTH="10%" ROWSPAN="#9">Parameters</th> ! <td WIDTH="15%">DEVICE</td><td WIDTH="15%">string</td><td WIDTH="40%">The device name.</td></tr><td WIDTH="15%">WIDTH</td><td WIDTH="15%">int</td><td WIDTH="40%">Width of the image.</td></tr><td WIDTH="15%">HEIGHT</td><td WIDTH="15%">int</td><td WIDTH="40%">Height of the image.</td></tr><td WIDTH="15%">BRIGHTNESS</td><td WIDTH="15%">int</td><td WIDTH="40%">Image brightness</td></tr><td WIDTH="15%">CONTRAST</td><td WIDTH="15%">int</td><td WIDTH="40%">Image contrast</td></tr><td WIDTH="15%">HUE</td><td WIDTH="15%">int</td><td WIDTH="40%">Image hue</td></tr><td WIDTH="15%">SATURATION</td><td WIDTH="15%">int</td><td WIDTH="40%">Image saturation</td></tr><td WIDTH="15%">AUTO_WHITE_BALANCE</td><td WIDTH="15%">bool</td><td WIDTH="40%">Automatic white balance for V4L2 device.</td></tr><td WIDTH="15%">AUTO_SOFT_BRIGHTNESS</td><td WIDTH="15%">bool</td><td WIDTH="40%">Software adjustment of brightness (TEST)</td></tr></tr> </table> <br>Return to: <a href="#RobotFlow:Devices">RobotFlow:Devices</a><br><br>See next category: <a href="#RobotFlow:Control">RobotFlow:Control</a><br><br>Return to: <a href="#Categories of available FlowDesigner nodes">Categories of available FlowDesigner nodes</a><br><p><a NAME="RobotFlow:Control"></a><h2><br><br><br><br><br><br><hr><br>* RobotFlow:Control (4)</h2><h3>List of available FlowDesigner nodes </h3> --- 1769,1774 ---- <td WIDTH="15%">IMAGE</td><td WIDTH="10%">Image</td><td WIDTH="40%">The image from the frame grabber.</td></tr> <tr NOSAVE> ! <th WIDTH="10%" ROWSPAN="#10">Parameters</th> ! <td WIDTH="15%">DEVICE</td><td WIDTH="15%">string</td><td WIDTH="40%">The device name.</td></tr><td WIDTH="15%">WIDTH</td><td WIDTH="15%">int</td><td WIDTH="40%">Width of the image.</td></tr><td WIDTH="15%">HEIGHT</td><td WIDTH="15%">int</td><td WIDTH="40%">Height of the image.</td></tr><td WIDTH="15%">FORMAT</td><td WIDTH="15%">string</td><td WIDTH="40%">Format of image to be captured (RGB15, RGB24)</td></tr><td WIDTH="15%">BRIGHTNESS</td><td WIDTH="15%">int</td><td WIDTH="40%">Image brightness</td></tr><td WIDTH="15%">CONTRAST</td><td WIDTH="15%">int</td><td WIDTH="40%">Image contrast</td></tr><td WIDTH="15%">HUE</td><td WIDTH="15%">int</td><td WIDTH="40%">Image hue</td></tr><td WIDTH="15%">SATURATION</td><td WIDTH="15%">int</td><td WIDTH="40%">Image saturation</td></tr><td WIDTH="15%">AUTO_WHITE_BALANCE</td><td WIDTH="15%">bool</td><td WIDTH="40%">Automatic white balance for V4L2 device.</td></tr><td WIDTH="15%">AUTO_SOFT_BRIGHTNESS</td><td WIDTH="15%">bool</td><td WIDTH="40%">Software adjustment of brightness (TEST)</td></tr></tr> </table> <br>Return to: <a href="#RobotFlow:Devices">RobotFlow:Devices</a><br><br>See next category: <a href="#RobotFlow:Control">RobotFlow:Control</a><br><br>Return to: <a href="#Categories of available FlowDesigner nodes">Categories of available FlowDesigner nodes</a><br><p><a NAME="RobotFlow:Control"></a><h2><br><br><br><br><br><br><hr><br>* RobotFlow:Control (4)</h2><h3>List of available FlowDesigner nodes </h3> |
From: Dominic L. <ma...@us...> - 2004-06-25 17:02:18
|
Update of /cvsroot/robotflow/RobotFlow In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv6973 Modified Files: configure.in Log Message: added --disable-MARIE --disable-player Index: configure.in =================================================================== RCS file: /cvsroot/robotflow/RobotFlow/configure.in,v retrieving revision 1.41 retrieving revision 1.42 diff -C2 -d -r1.41 -r1.42 *** configure.in 31 May 2004 14:58:15 -0000 1.41 --- configure.in 25 Jun 2004 17:02:08 -0000 1.42 *************** *** 3,7 **** CXXFLAGS="-O2" ! AC_INIT([RobotFlow], [0.2.3cvs], [rob...@li...]) ROBOTFLOW_MAJOR_VERSION=0 --- 3,9 ---- CXXFLAGS="-O2" ! AC_INIT(Generic/include/Timer.h) ! ! #AC_INIT([RobotFlow], [0.2.3cvs], [rob...@li...]) ROBOTFLOW_MAJOR_VERSION=0 *************** *** 106,195 **** fi ! dnl Test for Player (Yannick Brosseau & Dominic Letourneau) ! AC_MSG_CHECKING(for player) PLAYER_FOUND="" ! AC_ARG_WITH(player, [ --with-player Where player is installed (/usr)], PLAYER_DIR="$withval") ! dnl test which PLAYER_DIR ! if test -n "$PLAYER_DIR"; then ! AC_MSG_RESULT("found in $PLAYER_DIR") ! PLAYER_LIBS="-L$PLAYER_DIR/lib -lplayerc -lplayercclient -lplayerclient -lplayerpacket -lplayerqueue" ! PLAYER_INCLUDES="-I$PLAYER_DIR/include" ! PLAYER_FOUND="yes" ! AM_CONDITIONAL(WITH_PLAYER,true) ! else ! dnl test for player with prefix & PATH ! AC_PATH_PROG(PLAYER_BIN,player,no,$PATH:$prefix/bin:$prefix/player/bin) ! if test "$PLAYER_BIN" != no; then ! PLAYER_DIR=`which $PLAYER_BIN | sed 's/bin\/player$//' ` ! PLAYER_LIBS="-L$PLAYER_DIR/lib -lplayerc -lplayercclient -lplayerclient -lplayerpacket -lplayerqueue" ! PLAYER_INCLUDES="-I$PLAYER_DIR/include" ! PLAYER_FOUND="yes" ! AM_CONDITIONAL(WITH_PLAYER,true) ! else ! AM_CONDITIONAL(WITH_PLAYER,false) fi fi ! dnl Test for ACE (Yannick Brosseau & Dominic Letourneau) ! AC_MSG_CHECKING(for ACE) ! ACE_FOUND="" ! ! AC_ARG_WITH(ACE, [ --with-ACE Where ACE is installed (/usr/local)], ACE_DIR="$withval") ! ! dnl test which ACE_DIR, std way ! if test -n "$ACE_DIR"; then ! ACE_LIBS="-L$ACE_DIR/lib -lACE" ! ACE_INCLUDES="-I$ACE_DIR/include" ! AC_MSG_RESULT("found ACE_wrappers in $ACE_DIR") ! ACE_FOUND="yes" fi ! dnl test with ACE_ROOT ! if test -z "$ACE_FOUND" && test -n "$ACE_ROOT"; then ! dnl Now attempting in a ACE_wrappers style. ! AC_MSG_RESULT("found ACE_wrappers in $ACE_ROOT") ! ACE_LIBS="-L$ACE_ROOT/ace -lACE" ! ACE_INCLUDES="-I$ACE_ROOT" ! ACE_FOUND="yes" ! fi ! AC_SUBST(ACE_LIBS) ! AC_SUBST(ACE_INCLUDES) MARIE_FOUND="" ! AC_ARG_WITH(MARIE, [ --with-MARIE Where MARIE is installed (/usr/local)], MARIE_DIR="$withval") ! ! dnl Test for MARIE (Dominic Letourneau) ! if test -n "$ACE_FOUND" && test -n "$MARIE_DIR"; then ! AC_MSG_RESULT("Using MARIE in $MARIE_DIR") ! MARIE_LIBS="-L$MARIE_DIR/lib -lmariedata -lmariecommon" ! MARIE_INCLUDES="-I$MARIE_DIR/include" ! MARIE_FOUND="yes" ! AM_CONDITIONAL(WITH_MARIE,true) else ! AC_PATH_PROG(MARIE_CONFIG,marie-config,no,$PATH:$prefix/bin:$prefix/marie/bin) ! if test "$MARIE_CONFIG" != no; then ! MARIE_LIBS=`$MARIE_CONFIG --libs libmariedata libmariecommon` ! MARIE_INCLUDES=`$MARIE_CONFIG --cflags libmariedata libmariecommon` MARIE_FOUND="yes" - AM_CONDITIONAL(WITH_MARIE,true) else ! AC_MSG_RESULT("MARIE disabled.") ! MARIE_LIBS="" ! MARIE_INCLUDES="" ! AM_CONDITIONAL(WITH_MARIE,false) fi fi AC_SUBST(MARIE_LIBS) AC_SUBST(MARIE_INCLUDES) - VERSION=$ROBOTFLOW_VERSION AM_INIT_AUTOMAKE($PACKAGE, $VERSION, no-define) --- 108,217 ---- fi ! ! AC_ARG_ENABLE(player,[ --disable-player Disable Player support],[disable_player=yes],[disable_player=no]) ! PLAYER_FOUND="" ! if test "$disable_player" = "yes"; then ! AC_MSG_RESULT("Player disabled by user") ! else ! dnl Test for Player (Yannick Brosseau & Dominic Letourneau) ! AC_MSG_CHECKING(for player) ! AC_ARG_WITH(player, [ --with-player Where player is installed (/usr)], PLAYER_DIR="$withval") ! dnl test which PLAYER_DIR ! if test -n "$PLAYER_DIR"; then ! AC_MSG_RESULT("found in $PLAYER_DIR") ! PLAYER_LIBS="-L$PLAYER_DIR/lib -lplayerc -lplayercclient -lplayerclient -lplayerpacket -lplayerqueue" ! PLAYER_INCLUDES="-I$PLAYER_DIR/include" ! PLAYER_FOUND="yes" ! else ! dnl test for player with prefix & PATH ! AC_PATH_PROG(PLAYER_BIN,player,no,$PATH:$prefix/bin:$prefix/player/bin) ! if test "$PLAYER_BIN" != no; then ! PLAYER_DIR=`which $PLAYER_BIN | sed 's/bin\/player$//' ` ! PLAYER_LIBS="-L$PLAYER_DIR/lib -lplayerc -lplayercclient -lplayerclient -lplayerpacket -lplayerqueue" ! PLAYER_INCLUDES="-I$PLAYER_DIR/include" ! PLAYER_FOUND="yes" ! fi fi fi ! dnl set WITH_PLAYER if player found and not disabled ! if test -n "$PLAYER_FOUND"; then ! AM_CONDITIONAL(WITH_PLAYER,true) ! else ! AM_CONDITIONAL(WITH_PLAYER,false) fi ! AC_SUBST(PLAYER_LIBS) ! AC_SUBST(PLAYER_INCLUDES) ! AC_ARG_ENABLE(MARIE,[ --disable-MARIE Disable MARIE support],[disable_MARIE=yes],[disable_MARIE=no]) MARIE_FOUND="" ! if test "$disable_MARIE" = "yes"; then ! AC_MSG_RESULT("MARIE disabled by user") else + dnl Test for ACE (Yannick Brosseau & Dominic Letourneau) + AC_MSG_CHECKING(for ACE) + ACE_FOUND="" ! AC_ARG_WITH(ACE, [ --with-ACE Where ACE is installed (/usr/local)], ACE_DIR="$withval") ! ! dnl test which ACE_DIR, std way ! if test -n "$ACE_DIR"; then ! ACE_LIBS="-L$ACE_DIR/lib -lACE" ! ACE_INCLUDES="-I$ACE_DIR/include" ! AC_MSG_RESULT("found ACE_wrappers in $ACE_DIR") ! ACE_FOUND="yes" ! fi ! ! dnl test with ACE_ROOT ! if test -z "$ACE_FOUND" && test -n "$ACE_ROOT"; then ! dnl Now attempting in a ACE_wrappers style. ! AC_MSG_RESULT("found ACE_wrappers in $ACE_ROOT") ! ACE_LIBS="-L$ACE_ROOT/ace -lACE" ! ACE_INCLUDES="-I$ACE_ROOT" ! ACE_FOUND="yes" ! fi ! ! AC_ARG_WITH(MARIE, [ --with-MARIE Where MARIE is installed (/usr/local)], MARIE_DIR="$withval") ! ! dnl Test for MARIE (Dominic Letourneau) ! if test -n "$ACE_FOUND" && test -n "$MARIE_DIR"; then ! AC_MSG_RESULT("Using MARIE in $MARIE_DIR") ! MARIE_LIBS="-L$MARIE_DIR/lib -lmariedata -lmariecommon" ! MARIE_INCLUDES="-I$MARIE_DIR/include" MARIE_FOUND="yes" else ! AC_PATH_PROG(MARIE_CONFIG,marie-config,no,$PATH:$prefix/bin:$prefix/marie/bin) ! if test "$MARIE_CONFIG" != no && test -n "$ACE_FOUND"; then ! MARIE_LIBS=`$MARIE_CONFIG --libs libmariedata libmariecommon` ! MARIE_INCLUDES=`$MARIE_CONFIG --cflags libmariedata libmariecommon` ! MARIE_FOUND="yes" ! else ! AC_MSG_RESULT("MARIE not found, MARIE disabled.") ! MARIE_LIBS="" ! MARIE_INCLUDES="" ! fi fi fi + dnl set WITH_MARIE if MARIE is found + if test -n "$MARIE_FOUND"; then + AM_CONDITIONAL(WITH_MARIE,true) + else + AM_CONDITIONAL(WITH_MARIE,false) + fi + + AC_SUBST(ACE_LIBS) + AC_SUBST(ACE_INCLUDES) AC_SUBST(MARIE_LIBS) AC_SUBST(MARIE_INCLUDES) VERSION=$ROBOTFLOW_VERSION AM_INIT_AUTOMAKE($PACKAGE, $VERSION, no-define) *************** *** 237,242 **** AC_SUBST(XML2_INCLUDE) AC_SUBST(XML2_LIB) - AC_SUBST(PLAYER_LIBS) - AC_SUBST(PLAYER_INCLUDES) dnl Output Files (makefiles) --- 259,262 ---- |
From: Dominic L. <ma...@us...> - 2004-06-23 20:21:24
|
Update of /cvsroot/robotflow/RobotFlow/Probes/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv23740 Modified Files: VirtualJoystick.cc Log Message: new text labels Index: VirtualJoystick.cc =================================================================== RCS file: /cvsroot/robotflow/RobotFlow/Probes/src/VirtualJoystick.cc,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** VirtualJoystick.cc 17 Jun 2004 01:03:52 -0000 1.3 --- VirtualJoystick.cc 23 Jun 2004 20:21:15 -0000 1.4 *************** *** 29,38 **** static void button1_click (GtkButton *button, VirtualJoystick* self) { ! cout<<"Button 1 clicked"<<endl; self->change_button_status(1); } static void button2_click (GtkButton *button, VirtualJoystick* self) { ! cout<<"Button 2 clicked"<<endl; self->change_button_status(2); } --- 29,38 ---- static void button1_click (GtkButton *button, VirtualJoystick* self) { ! //cout<<"Button 1 clicked"<<endl; self->change_button_status(1); } static void button2_click (GtkButton *button, VirtualJoystick* self) { ! //cout<<"Button 2 clicked"<<endl; self->change_button_status(2); } *************** *** 134,138 **** ! m_pButton1 = gtk_toolbar_append_element (GTK_TOOLBAR (m_pToolbar2), GTK_TOOLBAR_CHILD_BUTTON,NULL, _("1"), NULL, NULL,tmp_toolbar_icon, NULL, NULL); gtk_widget_ref (m_pButton1); --- 134,138 ---- ! m_pButton1 = gtk_toolbar_append_element (GTK_TOOLBAR (m_pToolbar2), GTK_TOOLBAR_CHILD_BUTTON,NULL, _("STOP"), NULL, NULL,tmp_toolbar_icon, NULL, NULL); gtk_widget_ref (m_pButton1); *************** *** 150,154 **** ! m_pButton2 = gtk_toolbar_append_element (GTK_TOOLBAR (m_pToolbar2), GTK_TOOLBAR_CHILD_BUTTON,NULL, _("2"), NULL, NULL,tmp_toolbar_icon, NULL, NULL); gtk_widget_ref (m_pButton2); --- 150,154 ---- ! m_pButton2 = gtk_toolbar_append_element (GTK_TOOLBAR (m_pToolbar2), GTK_TOOLBAR_CHILD_BUTTON,NULL, _("START"), NULL, NULL,tmp_toolbar_icon, NULL, NULL); gtk_widget_ref (m_pButton2); *************** *** 163,167 **** // Joystick toggle button 3 tmp_toolbar_icon = gtk_button_new_with_label("T1"); ! m_pButton3 = gtk_toolbar_append_element (GTK_TOOLBAR (m_pToolbar2), GTK_TOOLBAR_CHILD_TOGGLEBUTTON,NULL, _("TOGGLE1"), NULL, NULL,tmp_toolbar_icon, NULL, NULL); --- 163,167 ---- // Joystick toggle button 3 tmp_toolbar_icon = gtk_button_new_with_label("T1"); ! m_pButton3 = gtk_toolbar_append_element (GTK_TOOLBAR (m_pToolbar2), GTK_TOOLBAR_CHILD_TOGGLEBUTTON,NULL, _("WANDER"), NULL, NULL,tmp_toolbar_icon, NULL, NULL); *************** *** 169,184 **** gtk_object_set_data_full (GTK_OBJECT (m_pWindow1), "m_pButton3", m_pButton3,(GtkDestroyNotify) gtk_widget_unref); ! //callback for button 3 ! gtk_widget_show (m_pButton3); - - // Joystick toggle button 4 tmp_toolbar_icon = gtk_button_new_with_label("T2"); ! m_pButton4 = gtk_toolbar_append_element (GTK_TOOLBAR (m_pToolbar2), GTK_TOOLBAR_CHILD_TOGGLEBUTTON,NULL, _("TOGGLE2"), NULL, NULL,tmp_toolbar_icon, NULL, NULL); --- 169,181 ---- gtk_object_set_data_full (GTK_OBJECT (m_pWindow1), "m_pButton3", m_pButton3,(GtkDestroyNotify) gtk_widget_unref); ! //show button 3 gtk_widget_show (m_pButton3); // Joystick toggle button 4 tmp_toolbar_icon = gtk_button_new_with_label("T2"); ! m_pButton4 = gtk_toolbar_append_element (GTK_TOOLBAR (m_pToolbar2), GTK_TOOLBAR_CHILD_TOGGLEBUTTON,NULL, _("AVOID"), NULL, NULL,tmp_toolbar_icon, NULL, NULL); *************** *** 186,198 **** gtk_object_set_data_full (GTK_OBJECT (m_pWindow1), "m_pButton4", m_pButton4,(GtkDestroyNotify) gtk_widget_unref); ! //callback for button 4 ! gtk_widget_show (m_pButton4); - - - - //canvas --- 183,190 ---- gtk_object_set_data_full (GTK_OBJECT (m_pWindow1), "m_pButton4", m_pButton4,(GtkDestroyNotify) gtk_widget_unref); ! //show button 4 gtk_widget_show (m_pButton4); //canvas |
From: Dominic L. <ma...@us...> - 2004-06-17 17:37:39
|
Update of /cvsroot/robotflow/RobotFlow/MARIE/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv13473 Modified Files: MarieCommandMotor.cpp Log Message: fixed command problems Index: MarieCommandMotor.cpp =================================================================== RCS file: /cvsroot/robotflow/RobotFlow/MARIE/src/MarieCommandMotor.cpp,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** MarieCommandMotor.cpp 17 Jun 2004 17:20:17 -0000 1.3 --- MarieCommandMotor.cpp 17 Jun 2004 17:37:30 -0000 1.4 *************** *** 127,136 **** RCPtr<Int> velocityPtr = velocityInValue; velocity = *velocityPtr; - (*outputs[m_velocityOutID].buffer)[count] = ObjectRef(Int::alloc(velocity)); } - else - { - (*outputs[m_velocityOutID].buffer)[count] = nilObject; - } //get rotation --- 127,131 ---- *************** *** 138,148 **** { RCPtr<Int> rotationPtr = rotationInValue; ! rotation = *rotationPtr; ! (*outputs[m_rotationOutID].buffer)[count] = ObjectRef(Int::alloc(rotation)); } ! else ! { ! (*outputs[m_rotationOutID].buffer)[count] = nilObject; ! } //set new rotation & velocity --- 133,139 ---- { RCPtr<Int> rotationPtr = rotationInValue; ! rotation = *rotationPtr; } ! //set new rotation & velocity *************** *** 152,159 **** --- 143,154 ---- command->setRotation(rotation); (*outputs[m_commandOutID].buffer)[count] = ObjectRef(command); + (*outputs[m_velocityOutID].buffer)[count] = ObjectRef(Int::alloc(velocity)); + (*outputs[m_rotationOutID].buffer)[count] = ObjectRef(Int::alloc(rotation)); } else { (*outputs[m_commandOutID].buffer)[count] = nilObject; + (*outputs[m_velocityOutID].buffer)[count] = nilObject; + (*outputs[m_rotationOutID].buffer)[count] = nilObject; } } |
From: Dominic L. <ma...@us...> - 2004-06-17 17:20:25
|
Update of /cvsroot/robotflow/RobotFlow/MARIE/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv31083 Modified Files: MarieCommandCamera.cpp MarieCommandMotor.cpp Log Message: checking for valid input, else output nilObject Index: MarieCommandCamera.cpp =================================================================== RCS file: /cvsroot/robotflow/RobotFlow/MARIE/src/MarieCommandCamera.cpp,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** MarieCommandCamera.cpp 31 May 2004 14:10:09 -0000 1.2 --- MarieCommandCamera.cpp 17 Jun 2004 17:20:17 -0000 1.3 *************** *** 129,133 **** { MarieCommandCamera *command = NULL; ! int pan, tilt, zoom, contrast, brightness; //get all inputs --- 129,133 ---- { MarieCommandCamera *command = NULL; ! int pan, tilt, zoom, contrast, brightness = 0; //get all inputs *************** *** 151,156 **** else { ! command = new MarieCommandCamera(); ! pan = tilt = zoom = contrast = brightness = -1; } --- 151,159 ---- else { ! if (!brightnessInValue->isNil() && !contrastInValue->isNil() && ! !panInValue->isNil() && !tiltInValue->isNil() && !zoomInValue->isNil()) ! { ! command = new MarieCommandCamera(); ! } } *************** *** 187,203 **** //set PTZ ! command->setPTZ(pan,tilt,zoom); ! //set contrast ! command->setContrast(contrast); ! //cet brightness ! command->setBrightness(brightness); ! ! //output values ! (*outputs[m_brightnessOutID].buffer)[count] = ObjectRef(Int::alloc(brightness)); ! (*outputs[m_commandOutID].buffer)[count] = ObjectRef(command); ! (*outputs[m_contrastOutID].buffer)[count] = ObjectRef(Int::alloc(contrast)); ! (*outputs[m_panOutID].buffer)[count] = ObjectRef(Int::alloc(pan)); ! (*outputs[m_tiltOutID].buffer)[count] = ObjectRef(Int::alloc(tilt)); ! (*outputs[m_zoomOutID].buffer)[count] = ObjectRef(Int::alloc(zoom)); } else --- 190,219 ---- //set PTZ ! if (command) ! { ! command->setPTZ(pan,tilt,zoom); ! //set contrast ! command->setContrast(contrast); ! //cet brightness ! command->setBrightness(brightness); ! ! //output values ! (*outputs[m_brightnessOutID].buffer)[count] = ObjectRef(Int::alloc(brightness)); ! (*outputs[m_commandOutID].buffer)[count] = ObjectRef(command); ! (*outputs[m_contrastOutID].buffer)[count] = ObjectRef(Int::alloc(contrast)); ! (*outputs[m_panOutID].buffer)[count] = ObjectRef(Int::alloc(pan)); ! (*outputs[m_tiltOutID].buffer)[count] = ObjectRef(Int::alloc(tilt)); ! (*outputs[m_zoomOutID].buffer)[count] = ObjectRef(Int::alloc(zoom)); ! } ! else ! { ! //output values ! (*outputs[m_brightnessOutID].buffer)[count] = nilObject; ! (*outputs[m_commandOutID].buffer)[count] = nilObject; ! (*outputs[m_contrastOutID].buffer)[count] = nilObject; ! (*outputs[m_panOutID].buffer)[count] = nilObject; ! (*outputs[m_tiltOutID].buffer)[count] = nilObject; ! (*outputs[m_zoomOutID].buffer)[count] = nilObject; ! } } else Index: MarieCommandMotor.cpp =================================================================== RCS file: /cvsroot/robotflow/RobotFlow/MARIE/src/MarieCommandMotor.cpp,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** MarieCommandMotor.cpp 31 May 2004 14:10:09 -0000 1.2 --- MarieCommandMotor.cpp 17 Jun 2004 17:20:17 -0000 1.3 *************** *** 99,103 **** { MarieCommandMotor *command = NULL; ! int velocity, rotation; //get all inputs --- 99,103 ---- { MarieCommandMotor *command = NULL; ! int velocity, rotation = 0; //get all inputs *************** *** 116,121 **** else { ! command = new MarieCommandMotor(); ! velocity = rotation = -1; } --- 116,123 ---- else { ! if (!velocityInValue->isNil() && !rotationInValue->isNil()) ! { ! command = new MarieCommandMotor(); ! } } *************** *** 125,129 **** --- 127,136 ---- RCPtr<Int> velocityPtr = velocityInValue; velocity = *velocityPtr; + (*outputs[m_velocityOutID].buffer)[count] = ObjectRef(Int::alloc(velocity)); } + else + { + (*outputs[m_velocityOutID].buffer)[count] = nilObject; + } //get rotation *************** *** 132,147 **** RCPtr<Int> rotationPtr = rotationInValue; rotation = *rotationPtr; } //set new rotation & velocity ! command->setVelocity(velocity); ! command->setRotation(rotation); ! ! //output result ! (*outputs[m_commandOutID].buffer)[count] = ObjectRef(command); ! (*outputs[m_velocityOutID].buffer)[count] = ObjectRef(Int::alloc(velocity)); ! (*outputs[m_rotationOutID].buffer)[count] = ObjectRef(Int::alloc(rotation)); } ! else { out[count] = nilObject; --- 139,162 ---- RCPtr<Int> rotationPtr = rotationInValue; rotation = *rotationPtr; + (*outputs[m_rotationOutID].buffer)[count] = ObjectRef(Int::alloc(rotation)); } + else + { + (*outputs[m_rotationOutID].buffer)[count] = nilObject; + } //set new rotation & velocity ! if (command) ! { ! command->setVelocity(velocity); ! command->setRotation(rotation); ! (*outputs[m_commandOutID].buffer)[count] = ObjectRef(command); ! } ! else ! { ! (*outputs[m_commandOutID].buffer)[count] = nilObject; ! } } ! else //not a node... { out[count] = nilObject; |
From: Carle C. <car...@us...> - 2004-06-17 13:53:02
|
Update of /cvsroot/robotflow/RobotFlow/MARIE/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4182 Modified Files: MarieLoad.cpp MariePeek.cpp MariePull.cpp Log Message: enhance parsing algo Index: MarieLoad.cpp =================================================================== RCS file: /cvsroot/robotflow/RobotFlow/MARIE/src/MarieLoad.cpp,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** MarieLoad.cpp 14 Jun 2004 14:15:26 -0000 1.4 --- MarieLoad.cpp 17 Jun 2004 13:52:52 -0000 1.5 *************** *** 72,91 **** //input_stream->flush(); ! stringstream my_stream; while(1) { ! char c; ! (*input_stream).read(&c,1); ! ! my_stream << c; ! if (my_stream.str().find("</MARIE>") != string::npos) ! { ! //found a valid MARIE object, exit loop to process it ! break; ! } } ! DataAbstract *data = m_factory.createData(my_stream.str()); if (data) --- 72,95 ---- //input_stream->flush(); ! string my_string; while(1) { ! char c; ! (*input_stream).read(&c,1); ! ! my_string += c; ! ! if(c == '>') ! { ! if (my_string.rfind("</MARIE>") != string::npos) ! { ! //found a valid MARIE object, exit loop to process it ! break; ! } ! } } ! DataAbstract *data = m_factory.createData(my_string); if (data) Index: MariePull.cpp =================================================================== RCS file: /cvsroot/robotflow/RobotFlow/MARIE/src/MariePull.cpp,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** MariePull.cpp 14 Jun 2004 14:15:26 -0000 1.1 --- MariePull.cpp 17 Jun 2004 13:52:52 -0000 1.2 *************** *** 72,91 **** //input_stream->flush(); ! stringstream my_stream; while(1) { ! char c; ! (*input_stream).read(&c,1); ! ! my_stream << c; ! if (my_stream.str().find("</MARIE>") != string::npos) ! { ! //found a valid MARIE object, exit loop to process it ! break; ! } } ! DataAbstract *data = m_factory.createData(my_stream.str()); if (data) --- 72,95 ---- //input_stream->flush(); ! string my_string; while(1) { ! char c; ! (*input_stream).read(&c,1); ! ! my_string += c; ! ! if(c == '>') ! { ! if (my_string.rfind("</MARIE>") != string::npos) ! { ! //found a valid MARIE object, exit loop to process it ! break; ! } ! } } ! DataAbstract *data = m_factory.createData(my_string); if (data) Index: MariePeek.cpp =================================================================== RCS file: /cvsroot/robotflow/RobotFlow/MARIE/src/MariePeek.cpp,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** MariePeek.cpp 14 Jun 2004 18:36:36 -0000 1.1 --- MariePeek.cpp 17 Jun 2004 13:52:52 -0000 1.2 *************** *** 72,91 **** //input_stream->flush(); ! stringstream my_stream; while(1) { ! char c; ! (*input_stream).read(&c,1); ! ! my_stream << c; ! if (my_stream.str().find("</MARIE>") != string::npos) ! { ! //found a valid MARIE object, exit loop to process it ! break; ! } } ! DataAbstract *data = m_factory.createData(my_stream.str()); if (data) --- 72,95 ---- //input_stream->flush(); ! string my_string; while(1) { ! char c; ! (*input_stream).read(&c,1); ! ! my_string += c; ! ! if(c == '>') ! { ! if (my_string.rfind("</MARIE>") != string::npos) ! { ! //found a valid MARIE object, exit loop to process it ! break; ! } ! } } ! DataAbstract *data = m_factory.createData(my_string); if (data) |
From: Dominic L. <ma...@us...> - 2004-06-17 01:04:02
|
Update of /cvsroot/robotflow/RobotFlow/Probes/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv10840/src Modified Files: VirtualJoystick.cc Log Message: added 2 toggle buttons to joystick Index: VirtualJoystick.cc =================================================================== RCS file: /cvsroot/robotflow/RobotFlow/Probes/src/VirtualJoystick.cc,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** VirtualJoystick.cc 30 Apr 2003 19:29:42 -0000 1.2 --- VirtualJoystick.cc 17 Jun 2004 01:03:52 -0000 1.3 *************** *** 48,51 **** --- 48,54 ---- m_button1_on = false; m_button2_on = false; + m_toggleButton3_on = false; + m_toggleButton4_on = false; + m_pWindow1 = NULL; *************** *** 54,57 **** --- 57,62 ---- m_pButton1 = NULL; m_pButton2 = NULL; + m_pButton3 = NULL; + m_pButton4 = NULL; m_pCanvas = NULL; m_pGroup = NULL; *************** *** 155,158 **** --- 160,198 ---- gtk_signal_connect (GTK_OBJECT (m_pButton2), "pressed",GTK_SIGNAL_FUNC (button2_click),this); gtk_signal_connect (GTK_OBJECT (m_pButton2), "released",GTK_SIGNAL_FUNC (button2_click),this); + + // Joystick toggle button 3 + tmp_toolbar_icon = gtk_button_new_with_label("T1"); + m_pButton3 = gtk_toolbar_append_element (GTK_TOOLBAR (m_pToolbar2), GTK_TOOLBAR_CHILD_TOGGLEBUTTON,NULL, _("TOGGLE1"), + NULL, NULL,tmp_toolbar_icon, NULL, NULL); + + gtk_widget_ref (m_pButton3); + gtk_object_set_data_full (GTK_OBJECT (m_pWindow1), "m_pButton3", m_pButton3,(GtkDestroyNotify) gtk_widget_unref); + + //callback for button 3 + + gtk_widget_show (m_pButton3); + + + + + // Joystick toggle button 4 + tmp_toolbar_icon = gtk_button_new_with_label("T2"); + + + m_pButton4 = gtk_toolbar_append_element (GTK_TOOLBAR (m_pToolbar2), GTK_TOOLBAR_CHILD_TOGGLEBUTTON,NULL, _("TOGGLE2"), + NULL, NULL,tmp_toolbar_icon, NULL, NULL); + + gtk_widget_ref (m_pButton4); + gtk_object_set_data_full (GTK_OBJECT (m_pWindow1), "m_pButton4", m_pButton4,(GtkDestroyNotify) gtk_widget_unref); + + //callback for button 4 + + gtk_widget_show (m_pButton4); + + + + + + //canvas *************** *** 321,325 **** ! Vector<float> *data = Vector<float>::alloc(4); --- 361,365 ---- ! Vector<float> *data = Vector<float>::alloc(6); *************** *** 328,331 **** --- 368,375 ---- (*data)[2] = (float) m_button1_on; (*data)[3] = (float) m_button2_on; + (*data)[4] = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(m_pButton3)); + (*data)[5] = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(m_pButton4)); + + out[count] = ObjectRef(data); |
From: Dominic L. <ma...@us...> - 2004-06-17 01:04:01
|
Update of /cvsroot/robotflow/RobotFlow/Probes/include In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv10840/include Modified Files: VirtualJoystick.h Log Message: added 2 toggle buttons to joystick Index: VirtualJoystick.h =================================================================== RCS file: /cvsroot/robotflow/RobotFlow/Probes/include/VirtualJoystick.h,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** VirtualJoystick.h 15 Aug 2003 18:35:40 -0000 1.2 --- VirtualJoystick.h 17 Jun 2004 01:03:51 -0000 1.3 *************** *** 13,16 **** --- 13,18 ---- bool m_button1_on; bool m_button2_on; + bool m_toggleButton3_on; + bool m_toggleButton4_on; int m_inputID; *************** *** 25,28 **** --- 27,32 ---- GtkWidget* m_pButton1; GtkWidget* m_pButton2; + GtkWidget* m_pButton3; + GtkWidget* m_pButton4; GnomeCanvasItem* m_pBorder; GnomeCanvasItem* m_pHandle; |
From: Dominic L. <ma...@us...> - 2004-06-15 12:52:42
|
Update of /cvsroot/robotflow/RobotFlow/Vision/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv6272 Modified Files: JPEGSave.cc Log Message: working quality setting of jpeg file Index: JPEGSave.cc =================================================================== RCS file: /cvsroot/robotflow/RobotFlow/Vision/src/JPEGSave.cc,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** JPEGSave.cc 14 Jun 2004 12:53:03 -0000 1.6 --- JPEGSave.cc 15 Jun 2004 12:52:33 -0000 1.7 *************** *** 305,310 **** } ! jpeg_set_quality(&cinfo,atoi(m_quality.c_str()),FALSE); /* set compression quality */ jpeg_set_defaults(&cinfo); /* Make optional parameter settings here */ --- 305,313 ---- } ! jpeg_set_defaults(&cinfo); + + jpeg_set_quality(&cinfo,atoi(m_quality.c_str()),TRUE); /* set compression quality */ + /* Make optional parameter settings here */ |
From: Dominic L. <ma...@us...> - 2004-06-14 18:59:05
|
Update of /cvsroot/robotflow/RobotFlow/MARIE/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv32116/src Modified Files: Makefile.am Log Message: fixed Makefile.am for MariePeek.cpp Index: Makefile.am =================================================================== RCS file: /cvsroot/robotflow/RobotFlow/MARIE/src/Makefile.am,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** Makefile.am 14 Jun 2004 18:32:53 -0000 1.7 --- Makefile.am 14 Jun 2004 18:58:54 -0000 1.8 *************** *** 11,14 **** --- 11,15 ---- MariePull.cpp \ MariePush.cpp \ + MariePeek.cpp \ MarieDataLaser.cpp \ MarieDataSonar.cpp \ |
From: Carle C. <car...@us...> - 2004-06-14 18:36:45
|
Update of /cvsroot/robotflow/RobotFlow/MARIE/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14706/src Added Files: MariePeek.cpp Log Message: add MariePeek --- NEW FILE: MariePeek.cpp --- /* * MARIE - Mobile and Autonomous Robotics Integration Environment * Copyright (C) 2004 Carle Cote * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * You can contact MARIE development team at http://marie.sourceforge.net */ #include "MariePeek.h" #include "BufferedNode.h" #include "Buffer.h" #include "operators.h" #include <sstream> #include "Stream.h" #include "MarieObject.h" namespace marie { DECLARE_NODE(MariePeek) /*Node * * @name MariePeek * @category RobotFlow:MARIE:IO * @description Peak an object from the stream (non blocking) * * @input_name STREAM * @input_type Stream * @input_description The input stream * * @output_name OUTPUT * @output_description Object * @output_type any * END*/ MariePeek::MariePeek(string nodeName, ParameterSet params) : BufferedNode(nodeName, params) { m_outputID = addOutput("OUTPUT"); m_inputID = addInput("STREAM"); } void MariePeek::calculate(int output_id, int count, Buffer &out) { try { //default output to nilObject ObjectRef objValue = nilObject; //get input stream RCPtr<IOStream> input_stream = getInput(m_inputID,count); //instruct marie that we are gonna do a "peek" (*input_stream) << "<peek>"; //make sure we are flushing data ? //input_stream->flush(); stringstream my_stream; while(1) { char c; (*input_stream).read(&c,1); my_stream << c; if (my_stream.str().find("</MARIE>") != string::npos) { //found a valid MARIE object, exit loop to process it break; } } DataAbstract *data = m_factory.createData(my_stream.str()); if (data) { //create FlowDesigner type object objValue = Object::newObject(data->getID()); //copy data from newly created object type RCPtr<MarieObject> marieObjectPtr = objValue; //copy internal data marieObjectPtr->copyDataAbstract(data); //delete unused data delete data; } //output the newly created object out[count] = objValue; } catch (BaseException *e) { e->print(cerr); delete e; } catch (...) { cerr<<"MariePeek : Unknown exception occured"<<endl; } } } |
From: Carle C. <car...@us...> - 2004-06-14 18:36:45
|
Update of /cvsroot/robotflow/RobotFlow/MARIE/include In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14706/include Modified Files: Makefile.am Added Files: MariePeek.h Log Message: add MariePeek --- NEW FILE: MariePeek.h --- /* * MARIE - Mobile and Autonomous Robotics Integration Environment * Copyright (C) 2004 Carle Cote * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * You can contact MARIE development team at http://marie.sourceforge.net */ // Prevent Multiple Inclusion #ifndef _MARIE_PEEK_H_ #define _MARIE_PEEK_H_ #include "BufferedNode.h" #include "MarieXMLDataFactory.h" namespace marie { class MariePeek : public BufferedNode { private: int m_inputID; int m_outputID; MarieXMLDataFactory m_factory; public: MariePeek(string nodeName, ParameterSet params); void calculate(int output_id, int count, Buffer &out); }; } #endif Index: Makefile.am =================================================================== RCS file: /cvsroot/robotflow/RobotFlow/MARIE/include/Makefile.am,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** Makefile.am 14 Jun 2004 18:32:52 -0000 1.4 --- Makefile.am 14 Jun 2004 18:36:35 -0000 1.5 *************** *** 13,16 **** --- 13,17 ---- MarieSave.h \ MariePull.h \ + MariePeek.h \ MariePush.h |
From: Dominic L. <ma...@us...> - 2004-06-14 18:33:03
|
Update of /cvsroot/robotflow/RobotFlow/MARIE/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv11547/src Modified Files: Makefile.am Removed Files: MariePeak.cpp Log Message: spelling error, MariePeek to be commited soon --- MariePeak.cpp DELETED --- Index: Makefile.am =================================================================== RCS file: /cvsroot/robotflow/RobotFlow/MARIE/src/Makefile.am,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** Makefile.am 14 Jun 2004 14:15:26 -0000 1.6 --- Makefile.am 14 Jun 2004 18:32:53 -0000 1.7 *************** *** 10,14 **** MarieSave.cpp \ MariePull.cpp \ - MariePeak.cpp \ MariePush.cpp \ MarieDataLaser.cpp \ --- 10,13 ---- |
From: Dominic L. <ma...@us...> - 2004-06-14 18:33:02
|
Update of /cvsroot/robotflow/RobotFlow/MARIE/include In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv11547/include Modified Files: Makefile.am Removed Files: MariePeak.h Log Message: spelling error, MariePeek to be commited soon Index: Makefile.am =================================================================== RCS file: /cvsroot/robotflow/RobotFlow/MARIE/include/Makefile.am,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** Makefile.am 14 Jun 2004 14:16:26 -0000 1.3 --- Makefile.am 14 Jun 2004 18:32:52 -0000 1.4 *************** *** 13,17 **** MarieSave.h \ MariePull.h \ - MariePeak.h \ MariePush.h --- 13,16 ---- --- MariePeak.h DELETED --- |
From: Dominic L. <ma...@us...> - 2004-06-14 14:55:01
|
Update of /cvsroot/robotflow/RobotFlow/Devices/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv11647/src Modified Files: V4L2Capture.cc Log Message: capture device now supporting GREYSCALE Index: V4L2Capture.cc =================================================================== RCS file: /cvsroot/robotflow/RobotFlow/Devices/src/V4L2Capture.cc,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** V4L2Capture.cc 13 Jun 2004 20:05:55 -0000 1.12 --- V4L2Capture.cc 14 Jun 2004 14:54:51 -0000 1.13 *************** *** 52,56 **** * @parameter_type string * @parameter_value RGB15 ! * @parameter_description Format of image to be captured (RGB15, RGB24) * * @parameter_name BRIGHTNESS --- 52,61 ---- * @parameter_type string * @parameter_value RGB15 ! * @parameter_description Format of image to be captured (GREYSCALE, RGB15, RGB24) ! * ! * @parameter_name CONTINUOUS ! * @parameter_type bool ! * @parameter_value true ! * @parameter_description true if we use continuous mode for capture * * @parameter_name BRIGHTNESS *************** *** 120,129 **** m_width = dereference_cast<int>(parameters.get("WIDTH")); m_height = dereference_cast<int>(parameters.get("HEIGHT")); string format = object_cast<String>(parameters.get("FORMAT")); ! if (format == "RGB15") { m_pixelsize = 2; ! if (!m_captureDevice.initialize(m_device.c_str(),m_width,m_height,V4L2_PIX_FMT_RGB555)) { throw new GeneralException(string("Unable to initialize V4L2 device : ") + m_device, __FILE__,__LINE__); } --- 125,140 ---- m_width = dereference_cast<int>(parameters.get("WIDTH")); m_height = dereference_cast<int>(parameters.get("HEIGHT")); + m_continuous = dereference_cast<bool>(parameters.get("CONTINUOUS")); string format = object_cast<String>(parameters.get("FORMAT")); ! if (format == "GREYSCALE") { ! m_pixelsize = 1; ! if (!m_captureDevice.initialize(m_device.c_str(),m_width,m_height,V4L2_PIX_FMT_GREY,m_continuous)) { ! throw new GeneralException(string("Unable to initialize V4L2 device : ") + m_device, __FILE__,__LINE__); ! } ! }else if (format == "RGB15") { m_pixelsize = 2; ! if (!m_captureDevice.initialize(m_device.c_str(),m_width,m_height,V4L2_PIX_FMT_RGB555,m_continuous)) { throw new GeneralException(string("Unable to initialize V4L2 device : ") + m_device, __FILE__,__LINE__); } *************** *** 131,135 **** else if (format == "RGB24") { m_pixelsize = 3; ! if (!m_captureDevice.initialize(m_device.c_str(),m_width,m_height,V4L2_PIX_FMT_RGB24)) { throw new GeneralException(string("Unable to initialize V4L2 device : ") + m_device, __FILE__,__LINE__); } --- 142,146 ---- else if (format == "RGB24") { m_pixelsize = 3; ! if (!m_captureDevice.initialize(m_device.c_str(),m_width,m_height,V4L2_PIX_FMT_RGB24,m_continuous)) { throw new GeneralException(string("Unable to initialize V4L2 device : ") + m_device, __FILE__,__LINE__); } *************** *** 164,182 **** virtual void calculate(int output_id, int count, Buffer &out) { ! Image *image = Image::alloc(m_width,m_height,m_pixelsize); //16 bits image ! ! // read(m_captureDevice.getFD(),image->get_data(),m_width * m_height * 2); ! int index,field; ! ! //capture & cpy data ! memcpy(image->get_data(),m_captureDevice.captureFrame(index,field),m_width * m_height * m_pixelsize); ! if (m_autoSoftBrightness) { ! automaticBrightness(image); } ! //release frame ! m_captureDevice.releaseFrame(NULL,index); ! out[count] = ObjectRef(image); } --- 175,196 ---- virtual void calculate(int output_id, int count, Buffer &out) { ! Image *image = Image::alloc(m_width,m_height,m_pixelsize); //allocate image ! if (!m_continuous) { ! read(m_captureDevice.getFD(),image->get_data(),m_width * m_height * m_pixelsize); } + else { + int index,field; ! //capture & cpy data ! memcpy(image->get_data(),m_captureDevice.captureFrame(index,field),m_width * m_height * m_pixelsize); ! ! if (m_autoSoftBrightness) { ! automaticBrightness(image); ! } ! ! //release frame ! m_captureDevice.releaseFrame(NULL,index); ! } out[count] = ObjectRef(image); } *************** *** 264,268 **** } ! bool capture::initialize(const char *device,int nwidth,int nheight,int nfmt) { struct v4l2_requestbuffers req; --- 278,282 ---- } ! bool capture::initialize(const char *device,int nwidth,int nheight,int nfmt, bool continuous) { struct v4l2_requestbuffers req; *************** *** 395,453 **** //setting 30 frames per second ! grabSetFps(vid_fd, 30); ! // Request mmap-able capture buffers ! req.count = STREAMBUFS; ! req.type = V4L2_BUF_TYPE_VIDEO_CAPTURE; ! req.memory = V4L2_MEMORY_MMAP; ! err = ioctl(vid_fd, VIDIOC_REQBUFS, &req); ! if(err < 0 || req.count < 1){ ! printf("REQBUFS returned error %d, count %d\n", ! errno,req.count); ! return(false); ! } ! printf("mmapable buffers count : %i\n",req.count); ! //initialize memory map for each image buffer ! for(i=0; i<req.count; i++){ ! vimage[i].vidbuf.index = i; ! vimage[i].vidbuf.type = req.type; ! if(EINVAL == ioctl(vid_fd, VIDIOC_QUERYBUF, &vimage[i].vidbuf)) { ! perror("VIDIOC_QUERYBUF"); ! return(false); ! } ! //map memory ! vimage[i].data = (char*)mmap(NULL, ! vimage[i].vidbuf.length, ! PROT_READ | PROT_WRITE, ! MAP_SHARED, ! vid_fd, ! vimage[i].vidbuf.m.offset); ! if((int)vimage[i].data == -1){ ! perror("mmap error : "); ! return(false); } - } ! //queue buffers ! for(i=0; i<req.count; i++){ ! if((err = ioctl(vid_fd, VIDIOC_QBUF, &vimage[i].vidbuf))){ ! perror("QBUF error"); ! return(false); } - } ! // Turn on streaming capture ! if (EINVAL == ioctl(vid_fd, VIDIOC_STREAMON, &vimage[0].vidbuf.type)) { ! perror("VIDIOC_STREAMON"); ! return(false); } --- 409,469 ---- //setting 30 frames per second ! if (continuous) { ! grabSetFps(vid_fd, 30); ! // Request mmap-able capture buffers ! req.count = STREAMBUFS; ! req.type = V4L2_BUF_TYPE_VIDEO_CAPTURE; ! req.memory = V4L2_MEMORY_MMAP; ! err = ioctl(vid_fd, VIDIOC_REQBUFS, &req); ! if(err < 0 || req.count < 1){ ! printf("REQBUFS returned error %d, count %d\n", ! errno,req.count); ! return(false); ! } ! printf("mmapable buffers count : %i\n",req.count); ! //initialize memory map for each image buffer ! for(i=0; i<req.count; i++){ ! vimage[i].vidbuf.index = i; ! vimage[i].vidbuf.type = req.type; ! if(EINVAL == ioctl(vid_fd, VIDIOC_QUERYBUF, &vimage[i].vidbuf)) { ! perror("VIDIOC_QUERYBUF"); ! return(false); ! } ! //map memory ! vimage[i].data = (char*)mmap(NULL, ! vimage[i].vidbuf.length, ! PROT_READ | PROT_WRITE, ! MAP_SHARED, ! vid_fd, ! vimage[i].vidbuf.m.offset); ! if((int)vimage[i].data == -1){ ! perror("mmap error : "); ! return(false); ! } } ! //queue buffers ! for(i=0; i<req.count; i++){ ! if((err = ioctl(vid_fd, VIDIOC_QBUF, &vimage[i].vidbuf))){ ! perror("QBUF error"); ! return(false); ! } } ! // Turn on streaming capture ! if (EINVAL == ioctl(vid_fd, VIDIOC_STREAMON, &vimage[0].vidbuf.type)) { ! perror("VIDIOC_STREAMON"); ! return(false); ! } } |
From: Dominic L. <ma...@us...> - 2004-06-14 14:55:00
|
Update of /cvsroot/robotflow/RobotFlow/Devices/include In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv11647/include Modified Files: V4L2Capture.h Log Message: capture device now supporting GREYSCALE Index: V4L2Capture.h =================================================================== RCS file: /cvsroot/robotflow/RobotFlow/Devices/include/V4L2Capture.h,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** V4L2Capture.h 13 Jun 2004 20:05:55 -0000 1.7 --- V4L2Capture.h 14 Jun 2004 14:54:48 -0000 1.8 *************** *** 83,91 **** ~capture() {close();} ! bool initialize(const char *device,int nwidth,int nheight,int nfmt); bool initialize(int nwidth,int nheight) ! {return(initialize(NULL,nwidth,nheight,0));} bool initialize() ! {return(initialize(NULL,0,0,0));} void close(); --- 83,91 ---- ~capture() {close();} ! bool initialize(const char *device,int nwidth,int nheight,int nfmt, bool continuous); bool initialize(int nwidth,int nheight) ! {return(initialize(NULL,nwidth,nheight,0,false));} bool initialize() ! {return(initialize(NULL,0,0,0,false));} void close(); |
From: Dominic L. <ma...@us...> - 2004-06-14 14:16:35
|
Update of /cvsroot/robotflow/RobotFlow/MARIE/include In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14669 Modified Files: Makefile.am Log Message: added MariePeak MariePull MariePush Index: Makefile.am =================================================================== RCS file: /cvsroot/robotflow/RobotFlow/MARIE/include/Makefile.am,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** Makefile.am 7 Jun 2004 15:10:10 -0000 1.2 --- Makefile.am 14 Jun 2004 14:16:26 -0000 1.3 *************** *** 11,15 **** MarieDataOdometry.h \ MarieLoad.h \ ! MarieSave.h --- 11,18 ---- MarieDataOdometry.h \ MarieLoad.h \ ! MarieSave.h \ ! MariePull.h \ ! MariePeak.h \ ! MariePush.h |
From: Dominic L. <ma...@us...> - 2004-06-14 14:15:36
|
Update of /cvsroot/robotflow/RobotFlow/MARIE/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv13898/src Modified Files: Makefile.am MarieLoad.cpp MarieSave.cpp Added Files: MariePeak.cpp MariePull.cpp MariePush.cpp Log Message: added MariePeak MariePull MariePush Index: MarieLoad.cpp =================================================================== RCS file: /cvsroot/robotflow/RobotFlow/MARIE/src/MarieLoad.cpp,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** MarieLoad.cpp 7 Jun 2004 15:10:11 -0000 1.3 --- MarieLoad.cpp 14 Jun 2004 14:15:26 -0000 1.4 *************** *** 33,38 **** * * @name MarieLoad ! * @category RobotFlow:MARIE:IO ! * @description Save an object * * @input_name STREAM --- 33,38 ---- * * @name MarieLoad ! * @category RobotFlow:MARIE:zdeprecated ! * @description Load an object from the stream, pease use MariePull or MariePeak * * @input_name STREAM --- NEW FILE: MariePull.cpp --- /* * MARIE - Mobile and Autonomous Robotics Integration Environment * Copyright (C) 2004 Carle Cote * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * You can contact MARIE development team at http://marie.sourceforge.net */ #include "MariePull.h" #include "BufferedNode.h" #include "Buffer.h" #include "operators.h" #include <sstream> #include "Stream.h" #include "MarieObject.h" namespace marie { DECLARE_NODE(MariePull) /*Node * * @name MariePull * @category RobotFlow:MARIE:IO * @description Pull an object from the stream (blocking) * * @input_name STREAM * @input_type Stream * @input_description The input stream * * @output_name OUTPUT * @output_description Object * @output_type any * END*/ MariePull::MariePull(string nodeName, ParameterSet params) : BufferedNode(nodeName, params) { m_outputID = addOutput("OUTPUT"); m_inputID = addInput("STREAM"); } void MariePull::calculate(int output_id, int count, Buffer &out) { try { //default output to nilObject ObjectRef objValue = nilObject; //get input stream RCPtr<IOStream> input_stream = getInput(m_inputID,count); //instruct marie that we are gonna do a "pull" (*input_stream) << "<pull>"; //make sure we are flushing data ? //input_stream->flush(); stringstream my_stream; while(1) { char c; (*input_stream).read(&c,1); my_stream << c; if (my_stream.str().find("</MARIE>") != string::npos) { //found a valid MARIE object, exit loop to process it break; } } DataAbstract *data = m_factory.createData(my_stream.str()); if (data) { //create FlowDesigner type object objValue = Object::newObject(data->getID()); //copy data from newly created object type RCPtr<MarieObject> marieObjectPtr = objValue; //copy internal data marieObjectPtr->copyDataAbstract(data); //delete unused data delete data; } //output the newly created object out[count] = objValue; } catch (BaseException *e) { e->print(cerr); delete e; } catch (...) { cerr<<"MariePull : Unknown exception occured"<<endl; } } } --- NEW FILE: MariePeak.cpp --- /* * MARIE - Mobile and Autonomous Robotics Integration Environment * Copyright (C) 2004 Carle Cote * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * You can contact MARIE development team at http://marie.sourceforge.net */ #include "MariePeak.h" #include "BufferedNode.h" #include "Buffer.h" #include "operators.h" #include <sstream> #include "Stream.h" #include "MarieObject.h" namespace marie { DECLARE_NODE(MariePeak) /*Node * * @name MariePeak * @category RobotFlow:MARIE:IO * @description Peak an object from the stream (non blocking) * * @input_name STREAM * @input_type Stream * @input_description The input stream * * @output_name OUTPUT * @output_description Object * @output_type any * END*/ MariePeak::MariePeak(string nodeName, ParameterSet params) : BufferedNode(nodeName, params) { m_outputID = addOutput("OUTPUT"); m_inputID = addInput("STREAM"); } void MariePeak::calculate(int output_id, int count, Buffer &out) { try { //default output to nilObject ObjectRef objValue = nilObject; //get input stream RCPtr<IOStream> input_stream = getInput(m_inputID,count); //instruct marie that we are gonna do a "pull" (*input_stream) << "<peak>"; //make sure we are flushing data ? //input_stream->flush(); stringstream my_stream; while(1) { char c; (*input_stream).read(&c,1); my_stream << c; if (my_stream.str().find("</MARIE>") != string::npos) { //found a valid MARIE object, exit loop to process it break; } } DataAbstract *data = m_factory.createData(my_stream.str()); if (data) { //create FlowDesigner type object objValue = Object::newObject(data->getID()); //copy data from newly created object type RCPtr<MarieObject> marieObjectPtr = objValue; //copy internal data marieObjectPtr->copyDataAbstract(data); //delete unused data delete data; } //output the newly created object out[count] = objValue; } catch (BaseException *e) { e->print(cerr); delete e; } catch (...) { cerr<<"MariePeak : Unknown exception occured"<<endl; } } } Index: MarieSave.cpp =================================================================== RCS file: /cvsroot/robotflow/RobotFlow/MARIE/src/MarieSave.cpp,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** MarieSave.cpp 31 May 2004 14:10:09 -0000 1.2 --- MarieSave.cpp 14 Jun 2004 14:15:26 -0000 1.3 *************** *** 33,38 **** * * @name MarieSave ! * @category RobotFlow:MARIE:IO ! * @description Save an object * * @input_name INPUT --- 33,38 ---- * * @name MarieSave ! * @category RobotFlow:MARIE:zdeprecated ! * @description Save an object to a stream, please use MariePush * * @input_name INPUT --- NEW FILE: MariePush.cpp --- /* * MARIE - Mobile and Autonomous Robotics Integration Environment * Copyright (C) 2004 Carle Cote * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * You can contact MARIE development team at http://marie.sourceforge.net */ #include "MariePush.h" #include "BufferedNode.h" #include "Buffer.h" #include "operators.h" #include <sstream> #include "MarieXMLDataFactory.h" namespace marie { DECLARE_NODE(MariePush) /*Node * * @name MariePush * @category RobotFlow:MARIE:IO * @description Save an object * * @input_name INPUT * @input_description Object * @input_type any * * @input_name STREAM * @input_description Stream to write to * @input_type Stream * * @output_name OUTPUT * @output_description Same Object * @output_type any * END*/ MariePush::MariePush(string nodeName, ParameterSet params) : BufferedNode(nodeName, params) { // inputs m_inputID = addInput("INPUT"); m_streamID = addInput("STREAM"); // outputs m_outputID = addOutput("OUTPUT"); } void MariePush::calculate(int output_id, int count, Buffer &out) { ObjectRef val = getInput(m_inputID,count); RCPtr<OStream> my_stream = getInput(m_streamID,count); //write data (XML format) to the stream MarieXMLDataFactory factory; DataAbstract *valPtr = dynamic_cast<DataAbstract*>(val.get()); if (valPtr) { string val = factory.toString(*valPtr); (*my_stream).write(val.c_str(), val.size()); } else { throw new GeneralException("Not a valid DataAbstract",__FILE__,__LINE__); } //output the same object out[count] = val; } } Index: Makefile.am =================================================================== RCS file: /cvsroot/robotflow/RobotFlow/MARIE/src/Makefile.am,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** Makefile.am 7 Jun 2004 15:10:11 -0000 1.5 --- Makefile.am 14 Jun 2004 14:15:26 -0000 1.6 *************** *** 9,12 **** --- 9,15 ---- libRFMarie_la_SOURCES = MarieLoad.cpp \ MarieSave.cpp \ + MariePull.cpp \ + MariePeak.cpp \ + MariePush.cpp \ MarieDataLaser.cpp \ MarieDataSonar.cpp \ |
From: Dominic L. <ma...@us...> - 2004-06-14 14:15:34
|
Update of /cvsroot/robotflow/RobotFlow/MARIE/include In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv13898/include Added Files: MariePeak.h MariePull.h MariePush.h Log Message: added MariePeak MariePull MariePush --- NEW FILE: MariePeak.h --- /* * MARIE - Mobile and Autonomous Robotics Integration Environment * Copyright (C) 2004 Carle Cote * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * You can contact MARIE development team at http://marie.sourceforge.net */ // Prevent Multiple Inclusion #ifndef _MARIE_PEAK_H_ #define _MARIE_PEAK_H_ #include "BufferedNode.h" #include "MarieXMLDataFactory.h" namespace marie { class MariePeak : public BufferedNode { private: int m_inputID; int m_outputID; MarieXMLDataFactory m_factory; public: MariePeak(string nodeName, ParameterSet params); void calculate(int output_id, int count, Buffer &out); }; } #endif --- NEW FILE: MariePull.h --- /* * MARIE - Mobile and Autonomous Robotics Integration Environment * Copyright (C) 2004 Carle Cote * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * You can contact MARIE development team at http://marie.sourceforge.net */ // Prevent Multiple Inclusion #ifndef _MARIE_PULL_H_ #define _MARIE_PULL_H_ #include "BufferedNode.h" #include "MarieXMLDataFactory.h" namespace marie { class MariePull : public BufferedNode { private: int m_inputID; int m_outputID; MarieXMLDataFactory m_factory; public: MariePull(string nodeName, ParameterSet params); void calculate(int output_id, int count, Buffer &out); }; } #endif --- NEW FILE: MariePush.h --- /* * MARIE - Mobile and Autonomous Robotics Integration Environment * Copyright (C) 2004 Carle Cote * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * You can contact MARIE development team at http://marie.sourceforge.net */ // Prevent Multiple Inclusion #ifndef _MARIE_PUSH_H_ #define _MARIE_PUSH_H_ #include "BufferedNode.h" namespace marie { class MariePush : public BufferedNode { int m_inputID; int m_streamID; int m_outputID; public: MariePush(string nodeName, ParameterSet params); void calculate(int output_id, int count, Buffer &out); }; } #endif |
From: Dominic L. <ma...@us...> - 2004-06-14 12:53:15
|
Update of /cvsroot/robotflow/RobotFlow/Vision/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv16407 Modified Files: JPEGSave.cc Log Message: trying to compress 15 and 8 bpp jpeg images Index: JPEGSave.cc =================================================================== RCS file: /cvsroot/robotflow/RobotFlow/Vision/src/JPEGSave.cc,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** JPEGSave.cc 13 Jun 2004 19:44:11 -0000 1.5 --- JPEGSave.cc 14 Jun 2004 12:53:03 -0000 1.6 *************** *** 228,237 **** else { //write JPEG data into memory ! if (ImageValue->get_pixelsize() == 3) { ! write_pixbuf(*ImageValue,string(""), true, false, *image_data); ! } ! else { ! throw new GeneralException("Save to memory only support on 24bpp images",__FILE__,__LINE__); ! } } } --- 228,232 ---- else { //write JPEG data into memory ! write_pixbuf(*ImageValue,string(""), true, false, *image_data); } } *************** *** 289,295 **** cinfo.image_width = image.get_width(); /* image width and height, in pixels */ cinfo.image_height = image.get_height(); ! cinfo.input_components = 3; /* # of color components per pixel */ ! cinfo.in_color_space = JCS_RGB; /* colorspace of input image */ ! //cinfo.data_precision = 15; //15bPP jpeg_set_quality(&cinfo,atoi(m_quality.c_str()),FALSE); /* set compression quality */ --- 284,307 ---- cinfo.image_width = image.get_width(); /* image width and height, in pixels */ cinfo.image_height = image.get_height(); ! ! switch(image.get_pixelsize()) { ! case 1: ! cinfo.input_components = 1; /* # of color components per pixel */ ! cinfo.in_color_space = JCS_GRAYSCALE; ! cinfo.data_precision = 8; //8 bpp ! break; ! ! case 2: ! cinfo.input_components = 3; /* # of color components per pixel */ ! cinfo.in_color_space = JCS_RGB; /* colorspace of input image */ ! cinfo.data_precision = 15; //15 bPP ! break; ! ! case 3: ! cinfo.input_components = 3; /* # of color components per pixel */ ! cinfo.in_color_space = JCS_RGB; /* colorspace of input image */ ! cinfo.data_precision = 24; //24 bPP ! break; ! } jpeg_set_quality(&cinfo,atoi(m_quality.c_str()),FALSE); /* set compression quality */ |
From: Dominic L. <ma...@us...> - 2004-06-13 20:06:04
|
Update of /cvsroot/robotflow/RobotFlow/Devices/include In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv23670/include Modified Files: V4L2Capture.h Log Message: should now be able to capture 24bpp images from capture card Index: V4L2Capture.h =================================================================== RCS file: /cvsroot/robotflow/RobotFlow/Devices/include/V4L2Capture.h,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** V4L2Capture.h 4 Mar 2004 14:51:05 -0000 1.6 --- V4L2Capture.h 13 Jun 2004 20:05:55 -0000 1.7 *************** *** 83,87 **** ~capture() {close();} ! bool initialize(char *device,int nwidth,int nheight,int nfmt); bool initialize(int nwidth,int nheight) {return(initialize(NULL,nwidth,nheight,0));} --- 83,87 ---- ~capture() {close();} ! bool initialize(const char *device,int nwidth,int nheight,int nfmt); bool initialize(int nwidth,int nheight) {return(initialize(NULL,nwidth,nheight,0));} |
From: Dominic L. <ma...@us...> - 2004-06-13 20:06:04
|
Update of /cvsroot/robotflow/RobotFlow/Devices/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv23670/src Modified Files: V4L2Capture.cc Log Message: should now be able to capture 24bpp images from capture card Index: V4L2Capture.cc =================================================================== RCS file: /cvsroot/robotflow/RobotFlow/Devices/src/V4L2Capture.cc,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** V4L2Capture.cc 7 Apr 2004 13:12:10 -0000 1.11 --- V4L2Capture.cc 13 Jun 2004 20:05:55 -0000 1.12 *************** *** 49,52 **** --- 49,57 ---- * @parameter_description Height of the image. * + * @parameter_name FORMAT + * @parameter_type string + * @parameter_value RGB15 + * @parameter_description Format of image to be captured (RGB15, RGB24) + * * @parameter_name BRIGHTNESS * @parameter_type int *************** *** 95,98 **** --- 100,104 ---- int m_width; int m_height; + int m_pixelsize; String m_device; capture m_captureDevice; *************** *** 114,128 **** m_width = dereference_cast<int>(parameters.get("WIDTH")); m_height = dereference_cast<int>(parameters.get("HEIGHT")); - m_autoSoftBrightness = dereference_cast<bool>(parameters.get("AUTO_SOFT_BRIGHTNESS")); - - //initialize(char *device,int nwidth,int nheight,int nfmt); - if (!m_captureDevice.initialize(const_cast<char*>(m_device.c_str()), - m_width, - m_height, - V4L2_PIX_FMT_RGB555)) { ! throw new GeneralException(string("Unable to initialize V4L2 device : ") + m_device, __FILE__,__LINE__); } if (!m_captureDevice.set_contrast(m_contrast)) { --- 120,142 ---- m_width = dereference_cast<int>(parameters.get("WIDTH")); m_height = dereference_cast<int>(parameters.get("HEIGHT")); ! string format = object_cast<String>(parameters.get("FORMAT")); ! ! if (format == "RGB15") { ! m_pixelsize = 2; ! if (!m_captureDevice.initialize(m_device.c_str(),m_width,m_height,V4L2_PIX_FMT_RGB555)) { ! throw new GeneralException(string("Unable to initialize V4L2 device : ") + m_device, __FILE__,__LINE__); ! } ! } ! else if (format == "RGB24") { ! m_pixelsize = 3; ! if (!m_captureDevice.initialize(m_device.c_str(),m_width,m_height,V4L2_PIX_FMT_RGB24)) { ! throw new GeneralException(string("Unable to initialize V4L2 device : ") + m_device, __FILE__,__LINE__); ! } ! } else { ! throw new GeneralException("Image format must be RGB15 or RGB24 format",__FILE__,__LINE__); } + m_autoSoftBrightness = dereference_cast<bool>(parameters.get("AUTO_SOFT_BRIGHTNESS")); if (!m_captureDevice.set_contrast(m_contrast)) { *************** *** 150,154 **** virtual void calculate(int output_id, int count, Buffer &out) { ! Image *image = Image::alloc(m_width,m_height,2); //16 bits image // read(m_captureDevice.getFD(),image->get_data(),m_width * m_height * 2); --- 164,168 ---- virtual void calculate(int output_id, int count, Buffer &out) { ! Image *image = Image::alloc(m_width,m_height,m_pixelsize); //16 bits image // read(m_captureDevice.getFD(),image->get_data(),m_width * m_height * 2); *************** *** 156,160 **** //capture & cpy data ! memcpy(image->get_data(),m_captureDevice.captureFrame(index,field),m_width * m_height * 2); if (m_autoSoftBrightness) { --- 170,174 ---- //capture & cpy data ! memcpy(image->get_data(),m_captureDevice.captureFrame(index,field),m_width * m_height * m_pixelsize); if (m_autoSoftBrightness) { *************** *** 250,254 **** } ! bool capture::initialize(char *device,int nwidth,int nheight,int nfmt) { struct v4l2_requestbuffers req; --- 264,268 ---- } ! bool capture::initialize(const char *device,int nwidth,int nheight,int nfmt) { struct v4l2_requestbuffers req; |
From: Dominic L. <ma...@us...> - 2004-06-13 19:44:37
|
Update of /cvsroot/robotflow/RobotFlow/Vision/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv5319 Modified Files: JPEGLoadMemory.cc JPEGSave.cc Makefile.am Added Files: LoadImage.cc Log Message: now able to write JPEG data to memory properly with 24bpp images Index: JPEGLoadMemory.cc =================================================================== RCS file: /cvsroot/robotflow/RobotFlow/Vision/src/JPEGLoadMemory.cc,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** JPEGLoadMemory.cc 10 Jun 2004 19:21:55 -0000 1.1 --- JPEGLoadMemory.cc 13 Jun 2004 19:44:11 -0000 1.2 *************** *** 93,97 **** GdkPixbufLoader* loader = gdk_pixbuf_loader_new_with_type("jpeg",NULL); ! gdk_pixbuf_loader_set_size(loader,320,240); gdk_pixbuf_loader_write(loader,(const guchar*) image_data.c_str(),image_data.size(),NULL); --- 93,97 ---- GdkPixbufLoader* loader = gdk_pixbuf_loader_new_with_type("jpeg",NULL); ! gdk_pixbuf_loader_set_size(loader,m_width,m_height); gdk_pixbuf_loader_write(loader,(const guchar*) image_data.c_str(),image_data.size(),NULL); *************** *** 106,137 **** int num_channels = gdk_pixbuf_get_n_channels(pixbuf); unsigned char* pixbuf_ptr = gdk_pixbuf_get_pixels(pixbuf); - unsigned short* image_ptr = NULL; - - output_image = Image::alloc(m_width,m_height,num_channels); - - switch(num_channels) { - case 1: - output_image = Image::alloc(m_width,m_height,1); - memcpy(output_image->get_data(),gdk_pixbuf_get_pixels(pixbuf),m_width * m_height * num_channels); - break; - - case 3: - output_image = Image::alloc(m_width,m_height,2); - image_ptr = (unsigned short*) output_image->get_data(); - - for (int i = 0; i < m_width * m_height; i++) { - - //copy RED GREEN BLUE - *image_ptr++ = (((unsigned short)pixbuf_ptr[0] & 0xF1) << 8) | (((unsigned short)pixbuf_ptr[1] & 0xF1) << 3) | (((unsigned short)pixbuf_ptr[2]) & 0x1F); - - //goto next pixel - pixbuf_ptr += num_channels; - } - break; ! default: ! throw new GeneralException("JPEGLoadMemory : Unknown image type",__FILE__,__LINE__); ! break; ! } } --- 106,113 ---- int num_channels = gdk_pixbuf_get_n_channels(pixbuf); unsigned char* pixbuf_ptr = gdk_pixbuf_get_pixels(pixbuf); ! output_image = Image::alloc(m_width,m_height,num_channels); ! memcpy(output_image->get_data(),gdk_pixbuf_get_pixels(pixbuf),m_width * m_height * num_channels); ! } Index: Makefile.am =================================================================== RCS file: /cvsroot/robotflow/RobotFlow/Vision/src/Makefile.am,v retrieving revision 1.22 retrieving revision 1.23 diff -C2 -d -r1.22 -r1.23 *** Makefile.am 10 Jun 2004 19:21:55 -0000 1.22 --- Makefile.am 13 Jun 2004 19:44:11 -0000 1.23 *************** *** 41,45 **** RGBMerge.cc \ MultiColorTracker.cc \ ! JPEGLoadMemory.cc libVision_la_LDFLAGS = -release $(LT_RELEASE) $(PIXBUF_LIBS) $(GNOME_LIB) --- 41,46 ---- RGBMerge.cc \ MultiColorTracker.cc \ ! JPEGLoadMemory.cc \ ! LoadImage.cc libVision_la_LDFLAGS = -release $(LT_RELEASE) $(PIXBUF_LIBS) $(GNOME_LIB) Index: JPEGSave.cc =================================================================== RCS file: /cvsroot/robotflow/RobotFlow/Vision/src/JPEGSave.cc,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** JPEGSave.cc 11 Jun 2004 20:51:21 -0000 1.4 --- JPEGSave.cc 13 Jun 2004 19:44:11 -0000 1.5 *************** *** 214,229 **** ObjectRef inputValue = getInput(m_inputID, count); ! ObjectRef FilenameValue = getInput(m_fileID,count); String* image_data = new String; if (!inputValue->isNil()) { ! if (!FilenameValue->isNil()) { //write JPEG file ! write_pixbuf(object_cast<Image>(inputValue),object_cast<String>(FilenameValue), true, true, *image_data); } else { //write JPEG data into memory ! write_pixbuf(object_cast<Image>(inputValue),string(""), true, false, *image_data); } } --- 214,237 ---- ObjectRef inputValue = getInput(m_inputID, count); ! ObjectRef filenameValue = getInput(m_fileID,count); String* image_data = new String; if (!inputValue->isNil()) { ! ! RCPtr<Image> ImageValue = getInput(m_inputID, count); ! ! if (!filenameValue->isNil()) { //write JPEG file ! write_pixbuf(*ImageValue,object_cast<String>(filenameValue), true, true, *image_data); } else { //write JPEG data into memory ! if (ImageValue->get_pixelsize() == 3) { ! write_pixbuf(*ImageValue,string(""), true, false, *image_data); ! } ! else { ! throw new GeneralException("Save to memory only support on 24bpp images",__FILE__,__LINE__); ! } } } *************** *** 269,277 **** dest_mgr.term_destination = term_destination; ! static unsigned char buffer[320 * 240 * 2]; ! dest_mgr.next_output_byte = &buffer[0]; ! dest_mgr.free_in_buffer = 320 * 240 *2; /* # of byte spaces remaining in buffer */ //320x240x2 cinfo.dest = &dest_mgr; --- 277,287 ---- dest_mgr.term_destination = term_destination; ! data_string.resize(image.get_width() * image.get_height() * image.get_pixelsize()); ! //unsigned char *buffer = new unsigned char[image.get_width() * image.get_height() * image.get_pixelsize()]; ! dest_mgr.next_output_byte = (unsigned char*) &data_string[0]; ! ! dest_mgr.free_in_buffer = image.get_width() * image.get_height() * image.get_pixelsize(); /* # of byte spaces remaining in buffer */ //320x240x3 cinfo.dest = &dest_mgr; *************** *** 281,286 **** cinfo.input_components = 3; /* # of color components per pixel */ cinfo.in_color_space = JCS_RGB; /* colorspace of input image */ ! cinfo.data_precision = 15; //15bPP ! jpeg_set_quality(&cinfo,20,TRUE); /* set compression quality */ jpeg_set_defaults(&cinfo); /* Make optional parameter settings here */ --- 291,297 ---- cinfo.input_components = 3; /* # of color components per pixel */ cinfo.in_color_space = JCS_RGB; /* colorspace of input image */ ! //cinfo.data_precision = 15; //15bPP ! ! jpeg_set_quality(&cinfo,atoi(m_quality.c_str()),FALSE); /* set compression quality */ jpeg_set_defaults(&cinfo); /* Make optional parameter settings here */ *************** *** 309,317 **** //create buffer for jpeg data ! data_string.resize(320 * 240 * 2 - dest_mgr.free_in_buffer); ! ! //copy jpeg data ! memcpy(const_cast<char*>(data_string.c_str()),&buffer[0],data_string.size()); ! jpeg_destroy_compress(&cinfo); --- 320,324 ---- //create buffer for jpeg data ! data_string.resize(image.get_width() * image.get_height() * image.get_pixelsize() - dest_mgr.free_in_buffer); jpeg_destroy_compress(&cinfo); --- NEW FILE: LoadImage.cc --- /* LoadImage.cc Copyright (C) Dominic Letourneau 2004 (dom...@us...) This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #ifndef _LOADIMAGE_CC_ #define _LOADIMAGE_CC_ #include "gdk-pixbuf/gdk-pixbuf.h" #include "Image.h" #include "BufferedNode.h" class LoadImage; DECLARE_NODE(LoadImage) /*Node * * @name LoadImage * @category RobotFlow:Vision * @description Read image from disk from a gdk-pixbuf supported format * * @parameter_name PIXELSIZE * @parameter_type int * @parameter_value 2 * @parameter_description Pixel Size of output image (1-grayscale, 2-rgb15, 3-rgb24) * * @input_name FILENAME * @input_type string * @input_description the file to load * * @output_name IMAGE * @output_type Image * @output_description output image from file * END*/ class LoadImage : public BufferedNode { int m_imageID; int m_filenameID; int m_pixelSize; public: LoadImage(string nodeName, ParameterSet params) : BufferedNode(nodeName, params) { //input m_filenameID = addInput("FILENAME"); //output m_imageID = addOutput("IMAGE"); //parameter m_pixelSize = dereference_cast<int>(parameters.get("PIXELSIZE")); } void calculate(int output_id, int count, Buffer &out) { //get the file name ObjectRef FileNameValue = getInput(m_filenameID,count); if (!FileNameValue->isNil()) { RCPtr<String> stringValue = FileNameValue; GdkPixbuf* pixbuf = gdk_pixbuf_new_from_file(stringValue->c_str(),NULL); if (pixbuf) { int width = gdk_pixbuf_get_width(pixbuf); int height = gdk_pixbuf_get_height(pixbuf); int n_channels = gdk_pixbuf_get_n_channels(pixbuf); //do something with pixelsize unsigned char *image_data_ptr = gdk_pixbuf_get_pixels(pixbuf); Image *my_image = NULL; if (m_pixelSize == 2) { my_image = Image::alloc(width,height,m_pixelSize); unsigned short* my_image_ptr = (unsigned short*) my_image->get_data(); for (int i = 0; i < width * height; i++) { //keeping only 5 most significant bits short red = image_data_ptr[0] & 0xF1; short green = image_data_ptr[1] & 0xF1; short blue = image_data_ptr[2] & 0xF1; *my_image_ptr++ = ((red << 7 ) | (green << 2) | (blue >> 3)); image_data_ptr += n_channels; } out[count] = ObjectRef(my_image); } else if (m_pixelSize == 3) { my_image = Image::alloc(width,height,m_pixelSize); memcpy(my_image->get_data(),image_data_ptr, width * height * n_channels); out[count] = ObjectRef(my_image); } else { throw new GeneralException("PIXELSIZE not yet supported",__FILE__,__LINE__); } //TODO destroy pixbuf } else { throw new GeneralException(string("Unable to load image :") + *stringValue,__FILE__,__LINE__); } } else { out[count] = nilObject; } } }; #endif |