Difference between revisions of "ARDUINO MEGA Functions Debug"
(Created page with "<yambe:breadcrumb>ARDUINO_MEGA_Functions_and_Variables|Functions and Variables</yambe:breadcrumb> <br /> {{tl|1|1}} <br /> == memcpy == {| style="color:black;" width="100%" ...") |
|||
(18 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
− | <yambe:breadcrumb>ARDUINO_MEGA_Functions_and_Variables|Functions and Variables</yambe:breadcrumb> | + | {{DISPLAYTITLE:2560 (MEGA) Debug Functions}} |
+ | <yambe:breadcrumb self="2560 (MEGA) Debug">ARDUINO_MEGA_Functions_and_Variables|Functions and Variables</yambe:breadcrumb> | ||
<br /> | <br /> | ||
+ | The debugger in ROBOTC allows you to see all of your sensor, motor and variables while running your program. ROBOTC also has a debug terminal called the "Debug Stream" that you can use to output a terminal-like stream of information to have an additional way to monitor your program. | ||
+ | |||
+ | The debug stream is buffered directly in memory on the Arduino platform - You can store 300 bytes of debug stream data on the Arduino when running away from the PC. Once the Arduino is connected to the PC, you can open the debug stream and the entire buffer will be written to the "Debug Stream" debugger window. | ||
+ | |||
+ | You can open this debugger window from the "Robot -> Debugger Windows -> Debug Stream" window when in Expert or Super User mode. | ||
+ | |||
+ | [[File:DebugStream.png]] | ||
{{tl|1|1}} | {{tl|1|1}} | ||
<br /> | <br /> | ||
− | == | + | == writeDebugStream == |
{| style="color:black;" width="100%" cellpadding="5%" cellspacing="0" border="0" | {| style="color:black;" width="100%" cellpadding="5%" cellspacing="0" border="0" | ||
|- | |- | ||
− | | class="functionType"| <span class="bigKeywordBI">void </span><span class="bigKeywordB"> | + | | class="functionType"| <span class="bigKeywordBI">void </span><span class="bigKeywordB">writeDebugStream</span><span class="bigCodePunc">(</span><span class="bigKeywordBI">const string </span><span class="bigCodeBasic">sFormatString</span><span class="bigCodePunc">, </span><span class="bigCodeBasic">...</span><span class="bigCodePunc">)</span> |
|- | |- | ||
− | | style="font-family:Verdana, Geneva, sans-serif; color:black; background-color:#FFFFFF; text-align:left; font-size:100%;"|([[Data_Types#dataType_void|void]]) | + | | style="font-family:Verdana, Geneva, sans-serif; color:black; background-color:#FFFFFF; text-align:left; font-size:100%;"|([[Data_Types#dataType_void|void]]) The Debug Stream functionality allow the user to output formatted text to a debug terminal. This command works similar to a print to LCD command, but displays the information to the "Debug Stream" ROBOTC debugger window. |
|- | |- | ||
| | | | ||
Line 18: | Line 26: | ||
! width="20%" style="border-style: solid; border-width: 0px 0px 1px 0px"|Data Type | ! width="20%" style="border-style: solid; border-width: 0px 0px 1px 0px"|Data Type | ||
|- | |- | ||
− | | style="border-style: solid; border-width: 1px 0px 1px 0px"|'' | + | | style="border-style: solid; border-width: 1px 0px 1px 0px"|''sFormatString'' |
− | | style="border-style: solid; border-width: 1px 0px 1px 0px"| | + | | style="border-style: solid; border-width: 1px 0px 1px 0px"|A formatted string following standard C-Style convention for showing data inline. |
| style="border-style: solid; border-width: 1px 0px 1px 0px"|[[Data_Types#dataType_void|void]] | | style="border-style: solid; border-width: 1px 0px 1px 0px"|[[Data_Types#dataType_void|void]] | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
|- | |- | ||
|} | |} | ||
Line 36: | Line 36: | ||
|- | |- | ||
|<syntaxhighlight lang="robotc"> | |<syntaxhighlight lang="robotc"> | ||
− | + | int fooBarVar = 503; //Create a Variable to Display | |
− | + | writeDebugStream("Value: %d", fooBarVar); //Write the string "Value: 503" to the Debug Stream | |
− | + | ||
</syntaxhighlight> | </syntaxhighlight> | ||
|- | |- | ||
Line 46: | Line 45: | ||
<br /> | <br /> | ||
− | == | + | == writeDebugStreamLine == |
{| style="color:black;" width="100%" cellpadding="5%" cellspacing="0" border="0" | {| style="color:black;" width="100%" cellpadding="5%" cellspacing="0" border="0" | ||
|- | |- | ||
− | | class="functionType"| <span class="bigKeywordBI">void </span><span class="bigKeywordB"> | + | | class="functionType"| <span class="bigKeywordBI">void </span><span class="bigKeywordB">writeDebugStreamLine</span><span class="bigCodePunc">(</span><span class="bigKeywordBI">const string </span><span class="bigCodeBasic">sFormatString</span><span class="bigCodePunc">, </span><span class="bigCodeBasic">...</span><span class="bigCodePunc">)</span> |
|- | |- | ||
− | | style="font-family:Verdana, Geneva, sans-serif; color:black; background-color:#FFFFFF; text-align:left; font-size:100%;"|([[Data_Types#dataType_void|void]]) | + | | style="font-family:Verdana, Geneva, sans-serif; color:black; background-color:#FFFFFF; text-align:left; font-size:100%;"|([[Data_Types#dataType_void|void]]) The Debug Stream functionality allow the user to output formatted text to a debug terminal. This command works similar to a print to LCD command, but displays the information to the "Debug Stream" ROBOTC debugger window. |
+ | |||
+ | The only difference between this function and "writeDebugStream" is that a new line character is added after every call of "writeDebugStreamLine". | ||
|- | |- | ||
| | | | ||
Line 59: | Line 60: | ||
! width="20%" style="border-style: solid; border-width: 0px 0px 1px 0px"|Data Type | ! width="20%" style="border-style: solid; border-width: 0px 0px 1px 0px"|Data Type | ||
|- | |- | ||
− | | style="border-style: solid; border-width: 1px 0px 1px 0px"|'' | + | | style="border-style: solid; border-width: 1px 0px 1px 0px"|''sFormatString'' |
− | | style="border-style: solid; border-width: 1px 0px 1px 0px"| | + | | style="border-style: solid; border-width: 1px 0px 1px 0px"|A formatted string following standard C-Style convention for showing data inline. |
| style="border-style: solid; border-width: 1px 0px 1px 0px"|[[Data_Types#dataType_void|void]] | | style="border-style: solid; border-width: 1px 0px 1px 0px"|[[Data_Types#dataType_void|void]] | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
|- | |- | ||
|} | |} | ||
Line 77: | Line 70: | ||
|- | |- | ||
|<syntaxhighlight lang="robotc"> | |<syntaxhighlight lang="robotc"> | ||
− | int | + | int fooBarVar = 503; //Create a Variable to Display |
− | + | writeDebugStream("Value: %d", fooBarVar); //Write the string "Value: 503" to the Debug Stream | |
− | + | ||
− | + | ||
</syntaxhighlight> | </syntaxhighlight> | ||
|- | |- | ||
Line 88: | Line 79: | ||
<br /> | <br /> | ||
− | == | + | == getAvailSpaceInDebugStream == |
{| style="color:black;" width="100%" cellpadding="5%" cellspacing="0" border="0" | {| style="color:black;" width="100%" cellpadding="5%" cellspacing="0" border="0" | ||
|- | |- | ||
− | | class="variableType"| <span class="bigKeywordBI"> | + | | class="variableType"| <span class="bigKeywordBI">intrinsic short </span><span class="bigKeywordB">getAvailSpaceInDebugStream</span><span class="codePunc">()</span> |
|- | |- | ||
− | | style="font-family:Verdana, Geneva, sans-serif; color:black; background-color:#FFFFFF; text-align:left; font-size:100%;"|([[Data_Types# | + | | style="font-family:Verdana, Geneva, sans-serif; color:black; background-color:#FFFFFF; text-align:left; font-size:100%;"|([[Data_Types#dataType_short|short]]) Variable will return the current amount of space available in the debug stream. For the Arduino platform, the maximum size of the debug stream is 300 bytes. |
|- | |- | ||
| | | | ||
{| | {| | ||
|- | |- | ||
− | |<syntaxhighlight lang="robotc"> | + | |<syntaxhighlight lang="robotc"> |
+ | while(true) | ||
+ | { | ||
+ | if(getAvailSpaceInDebugStream() == 0) //Check if there is still room available | ||
+ | wait1Msec(50); //No Room: Wait for a while. | ||
+ | else | ||
+ | writeDebugStream("Still Have Room!", fooBarVar); //Got room, let's write some data! | ||
+ | } | ||
+ | </syntaxhighlight> | ||
|- | |- | ||
|} | |} | ||
Line 105: | Line 104: | ||
<br /> | <br /> | ||
− | == | + | == bFloatConversionErrors == |
{| style="color:black;" width="100%" cellpadding="5%" cellspacing="0" border="0" | {| style="color:black;" width="100%" cellpadding="5%" cellspacing="0" border="0" | ||
|- | |- | ||
− | | class="variableType"| <span class="bigKeywordBI"> | + | | class="variableType"| <span class="bigKeywordBI">intrinsic bool </span><span class="bigKeywordB">bFloatConversionErrors</span> |
|- | |- | ||
− | | style="font-family:Verdana, Geneva, sans-serif; color:black; background-color:#FFFFFF; text-align:left; font-size:100%;"|([[Data_Types# | + | | style="font-family:Verdana, Geneva, sans-serif; color:black; background-color:#FFFFFF; text-align:left; font-size:100%;"|([[Data_Types#dataType_bool|bool]]) When true, this variable will generate an exception if an out of range error occurs when converting a "float" value to an integer. ROBOTC will convert out of range exceptions into the largest possible integer number. |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
|- | |- | ||
|} | |} | ||
<br /> | <br /> |
Latest revision as of 20:48, 11 May 2012
The debugger in ROBOTC allows you to see all of your sensor, motor and variables while running your program. ROBOTC also has a debug terminal called the "Debug Stream" that you can use to output a terminal-like stream of information to have an additional way to monitor your program.
The debug stream is buffered directly in memory on the Arduino platform - You can store 300 bytes of debug stream data on the Arduino when running away from the PC. Once the Arduino is connected to the PC, you can open the debug stream and the entire buffer will be written to the "Debug Stream" debugger window.
You can open this debugger window from the "Robot -> Debugger Windows -> Debug Stream" window when in Expert or Super User mode.
|
writeDebugStream
void writeDebugStream(const string sFormatString, ...) | ||||||
(void) The Debug Stream functionality allow the user to output formatted text to a debug terminal. This command works similar to a print to LCD command, but displays the information to the "Debug Stream" ROBOTC debugger window. | ||||||
| ||||||
|
writeDebugStreamLine
void writeDebugStreamLine(const string sFormatString, ...) | ||||||
(void) The Debug Stream functionality allow the user to output formatted text to a debug terminal. This command works similar to a print to LCD command, but displays the information to the "Debug Stream" ROBOTC debugger window.
The only difference between this function and "writeDebugStream" is that a new line character is added after every call of "writeDebugStreamLine". | ||||||
| ||||||
|
getAvailSpaceInDebugStream
intrinsic short getAvailSpaceInDebugStream() | |
(short) Variable will return the current amount of space available in the debug stream. For the Arduino platform, the maximum size of the debug stream is 300 bytes. | |
|
bFloatConversionErrors
intrinsic bool bFloatConversionErrors |
(bool) When true, this variable will generate an exception if an out of range error occurs when converting a "float" value to an integer. ROBOTC will convert out of range exceptions into the largest possible integer number. |