mirror of
https://github.com/yoboujon/dumber.git
synced 2025-06-08 13:50:49 +02:00
Correction d'un probleme de depassement de capacité sur les commandes Move et Turn, coté robot et coté superviseur
This commit is contained in:
parent
c4256fd3a4
commit
61c791bf24
5 changed files with 26 additions and 14 deletions
|
@ -284,22 +284,22 @@ string ComRobot::MessageToString(Message *msg) {
|
||||||
case MESSAGE_ROBOT_GO_FORWARD:
|
case MESSAGE_ROBOT_GO_FORWARD:
|
||||||
s += LABEL_ROBOT_MOVE;
|
s += LABEL_ROBOT_MOVE;
|
||||||
s += LABEL_ROBOT_SEPARATOR_CHAR;
|
s += LABEL_ROBOT_SEPARATOR_CHAR;
|
||||||
s.append(to_string(500000));
|
s.append(to_string(32767));
|
||||||
break;
|
break;
|
||||||
case MESSAGE_ROBOT_GO_BACKWARD:
|
case MESSAGE_ROBOT_GO_BACKWARD:
|
||||||
s += LABEL_ROBOT_MOVE;
|
s += LABEL_ROBOT_MOVE;
|
||||||
s += LABEL_ROBOT_SEPARATOR_CHAR;
|
s += LABEL_ROBOT_SEPARATOR_CHAR;
|
||||||
s.append(to_string(-500000));
|
s.append(to_string(-32768));
|
||||||
break;
|
break;
|
||||||
case MESSAGE_ROBOT_GO_LEFT:
|
case MESSAGE_ROBOT_GO_LEFT:
|
||||||
s += LABEL_ROBOT_TURN;
|
s += LABEL_ROBOT_TURN;
|
||||||
s += LABEL_ROBOT_SEPARATOR_CHAR;
|
s += LABEL_ROBOT_SEPARATOR_CHAR;
|
||||||
s.append(to_string(-500000));
|
s.append(to_string(32767));
|
||||||
break;
|
break;
|
||||||
case MESSAGE_ROBOT_GO_RIGHT:
|
case MESSAGE_ROBOT_GO_RIGHT:
|
||||||
s += LABEL_ROBOT_TURN;
|
s += LABEL_ROBOT_TURN;
|
||||||
s += LABEL_ROBOT_SEPARATOR_CHAR;
|
s += LABEL_ROBOT_SEPARATOR_CHAR;
|
||||||
s.append(to_string(500000));
|
s.append(to_string(-32768));
|
||||||
break;
|
break;
|
||||||
case MESSAGE_ROBOT_STOP:
|
case MESSAGE_ROBOT_STOP:
|
||||||
s += LABEL_ROBOT_MOVE;
|
s += LABEL_ROBOT_MOVE;
|
||||||
|
|
|
@ -98,7 +98,7 @@
|
||||||
</extensions>
|
</extensions>
|
||||||
</storageModule>
|
</storageModule>
|
||||||
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
|
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
|
||||||
<configuration artifactExtension="elf" artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe,org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.release" cleanCommand="rm -rf" description="" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.release.405192035" name="Release" parent="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.release" postbuildStep=""cd ..; doxygen Doxyfile"">
|
<configuration artifactExtension="elf" artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe,org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.release" cleanCommand="rm -rf" description="" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.release.405192035" name="Release" parent="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.release" postbuildStep="">
|
||||||
<folderInfo id="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.release.405192035." name="/" resourcePath="">
|
<folderInfo id="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.release.405192035." name="/" resourcePath="">
|
||||||
<toolChain id="com.st.stm32cube.ide.mcu.gnu.managedbuild.toolchain.exe.release.813857126" name="MCU ARM GCC" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.toolchain.exe.release">
|
<toolChain id="com.st.stm32cube.ide.mcu.gnu.managedbuild.toolchain.exe.release.813857126" name="MCU ARM GCC" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.toolchain.exe.release">
|
||||||
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_mcu.1816216295" name="MCU" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_mcu" useByScannerDiscovery="true" value="STM32L071CBTx" valueType="string"/>
|
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_mcu.1816216295" name="MCU" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_mcu" useByScannerDiscovery="true" value="STM32L071CBTx" valueType="string"/>
|
||||||
|
|
|
@ -198,12 +198,12 @@ CMD_Generic* cmdDecode(char* cmd, uint8_t length) {
|
||||||
case MoveCMD:
|
case MoveCMD:
|
||||||
decodedCmd = (CMD_Generic*)malloc(sizeof(CMD_Move));
|
decodedCmd = (CMD_Generic*)malloc(sizeof(CMD_Move));
|
||||||
decodedCmd->type = CMD_MOVE;
|
decodedCmd->type = CMD_MOVE;
|
||||||
//((CMD_Move*)decodedCmd)->distance = ((int16_t)cmd[1]<<8) + (int16_t)cmd[2];
|
|
||||||
|
|
||||||
/* verify that command start with "M=" */
|
/* verify that command start with "M=" */
|
||||||
if ((cmd[0]=='M')&&(cmd[1]=='=')) {
|
if ((cmd[0]=='M')&&(cmd[1]=='=')) {
|
||||||
cmd = cmd+2; //cmd+2 for removing "M=" at start of the string
|
cmd = cmd+2; //cmd+2 for removing "M=" at start of the string
|
||||||
((CMD_Move*)decodedCmd)->distance=strtoul(cmd , &p, 10);
|
//((CMD_Move*)decodedCmd)->distance=strtoul(cmd , &p, 10);
|
||||||
|
((CMD_Move*)decodedCmd)->distance=(int16_t)strtol(cmd , &p, 10);
|
||||||
if (p==cmd)
|
if (p==cmd)
|
||||||
decodedCmd->type = CMD_NONE; /* missing number value xxxxx in "M=xxxxx" */
|
decodedCmd->type = CMD_NONE; /* missing number value xxxxx in "M=xxxxx" */
|
||||||
} else
|
} else
|
||||||
|
@ -213,15 +213,12 @@ CMD_Generic* cmdDecode(char* cmd, uint8_t length) {
|
||||||
case TurnCMD:
|
case TurnCMD:
|
||||||
decodedCmd = (CMD_Generic*)malloc(sizeof(CMD_Turn));
|
decodedCmd = (CMD_Generic*)malloc(sizeof(CMD_Turn));
|
||||||
decodedCmd->type = CMD_TURN;
|
decodedCmd->type = CMD_TURN;
|
||||||
//((CMD_Turn*)decodedCmd)->turns = ((int16_t)cmd[1]<<8) + (int16_t)cmd[2];
|
|
||||||
|
|
||||||
//if (!sscanf(cmd,"T=%hd",&((CMD_Turn*)decodedCmd)->turns ))
|
|
||||||
// decodedCmd->type = CMD_NONE;
|
|
||||||
|
|
||||||
/* verify that command start with "T=" */
|
/* verify that command start with "T=" */
|
||||||
if ((cmd[0]=='T')&&(cmd[1]=='=')) {
|
if ((cmd[0]=='T')&&(cmd[1]=='=')) {
|
||||||
cmd = cmd+2; //cmd+2 for removing "T=" at start of the string
|
cmd = cmd+2; //cmd+2 for removing "T=" at start of the string
|
||||||
((CMD_Turn*)decodedCmd)->turns=strtoul(cmd , &p, 10);
|
//((CMD_Turn*)decodedCmd)->turns=strtoul(cmd , &p, 10);
|
||||||
|
((CMD_Turn*)decodedCmd)->turns=(int16_t)strtol(cmd , &p, 10);
|
||||||
if (p==cmd)
|
if (p==cmd)
|
||||||
decodedCmd->type = CMD_NONE; /* missing number value xxxxx in "T=xxxxx" */
|
decodedCmd->type = CMD_NONE; /* missing number value xxxxx in "T=xxxxx" */
|
||||||
} else
|
} else
|
||||||
|
|
|
@ -44,8 +44,8 @@
|
||||||
* Version in plain text and as a numeric value
|
* Version in plain text and as a numeric value
|
||||||
*/
|
*/
|
||||||
///@{
|
///@{
|
||||||
#define SYSTEM_VERSION_STR "3.1"
|
#define SYSTEM_VERSION_STR "3.2"
|
||||||
#define SYSTEM_VERSION 0x0301 // Upper byte: major version, lower byte: minor version
|
#define SYSTEM_VERSION 0x0302 // Upper byte: major version, lower byte: minor version
|
||||||
///@}
|
///@}
|
||||||
|
|
||||||
#define STACK_SIZE 96
|
#define STACK_SIZE 96
|
||||||
|
|
|
@ -65,5 +65,20 @@
|
||||||
<packet name="Invalid Checksum">
|
<packet name="Invalid Checksum">
|
||||||
<payload>543D2D39303D0D</payload>
|
<payload>543D2D39303D0D</payload>
|
||||||
</packet>
|
</packet>
|
||||||
|
<packet name="Move backward - limite pos">
|
||||||
|
<payload>4D3D3332373637470D</payload>
|
||||||
|
</packet>
|
||||||
|
<packet name="Move backward - Limite Neg">
|
||||||
|
<payload>4D3D2D3332373638650D</payload>
|
||||||
|
</packet>
|
||||||
|
<packet name="Move backward - Over neg">
|
||||||
|
<payload>4D3D2D3332373639640D</payload>
|
||||||
|
</packet>
|
||||||
|
<packet name="Move backward - Over pos">
|
||||||
|
<payload>4D3D3332373638480D</payload>
|
||||||
|
</packet>
|
||||||
|
<packet name="Move backward - Overkill">
|
||||||
|
<payload>4D3D31323334353637400D</payload>
|
||||||
|
</packet>
|
||||||
</packets_list>
|
</packets_list>
|
||||||
</data>
|
</data>
|
||||||
|
|
Loading…
Add table
Reference in a new issue