Skip to main content
Code Review

Return to Question

Commonmark migration
Source Link

#roomba.cpp

roomba.cpp

#roomba.cpp

roomba.cpp

Text-Based Simulator in C++/Qt with many commands

Removed excessive indentation; removed [optimization] tag in favor of [design-patterns]
Source Link
200_success
  • 145.5k
  • 22
  • 190
  • 479

#roomba.cpp #include "roomba.h"

 /* OpCode Structs */
 struct roombaCommand {
 QString commandName;
 int opCode;
 int dataBytes;
 };
 
 roombaCommand cmdStart,
 cmdBaud,
 
 Roomba::Roomba()
 {
 setRoombaToDefaultValues();
 initRoombaCommands();
 }
 
 Roomba::~Roomba()
 #include {"roomba.h"
/* OpCode Structs */
struct }roombaCommand {
 QString commandName;
 QStringint Roomba::getError()opCode;
 {int dataBytes;
};

roombaCommand cmdStart,
 return roombaErrorMessage; cmdBaud,
Roomba::Roomba()
{
 }setRoombaToDefaultValues();
 initRoombaCommands();
}
Roomba::~Roomba()
{
}
QString Roomba::getError()
{
 return roombaErrorMessage;
}
void Roomba::setError(int32_t error_tmp = 0, QString opcode_tmp = "")
{
 roombaErrorNumber = error_tmp;

 switch(roombaErrorNumber){
 default: roombaErrorMessage =
 "An error ocurred, but no error message was specified.";
 break;
 case 1: roombaErrorMessage =
 "An unknown error ocurred.";
 break;
 case 2: roombaErrorMessage =
 "Invalid number op parameters for OpCode \"" + opcode_tmp + "\".";
 break;
 case 3: roombaErrorMessage =
 "Invalid baudcode specified for OpCode \"Baud\". Only the values 0-11 are accepted.";
 break;
 case 4: roombaErrorMessage =
 "Invalid operating mode for opcode \"" + opcode_tmp + "\". OpCode not availabe in " + roombaOperatingMode + " mode.";
 break;
 }
 
 }
 
 QString Roomba::getMessage()
 {
 return roombaMessage;
 }

}
QString Roomba::getMessage()
{
  return roombaMessage;
}
void Roomba::setMessage(int32_t message_tmp = 0, QString parameter_tmp = "")
{
 switch(message_tmp){
 default: roombaMessage =
 "";
 break;
 case 1: roombaMessage =
 "Changed roomba operating mode to \"" + parameter_tmp + "\".";
 break;
 case 2: roombaMessage =
 "Roomba operating mode was already set to \"" + parameter_tmp + "\". Operating mode remains unchanged.";
 break;
 case 3: roombaMessage =
 "Changed roomba baudcode to \"" + parameter_tmp + "\".";
 break;
 case 4: roombaMessage =
 "Roomba baudcode was already set to \"" + parameter_tmp + "\". Baudcode remains unchanged.";
 break;
 }
 
 }

}
int16_t Roomba::getRoombaBaudCode()
{
 int16_treturn roombaBaudCode;
}
void Roomba::getRoombaBaudCodesetRoombaBaudCode(int16_t baudCode)
{
 if (baudCode >= 0 && baudCode <= 11)
 {
 roombaBaudCode return= roombaBaudCode;baudCode;
 }
 
 void Roomba::setRoombaBaudCode(int16_t baudCode)else
 {
 if (baudCode >= 0 && baudCode <= 11)
 {
 roombaBaudCode = baudCode;
 }
 else
 {
 setError(3);
 }
 }
}
QString Roomba::getRoombaOperatingMode()
{
 QStringreturn roombaOperatingMode;
}
void Roomba::getRoombaOperatingModesetRoombaOperatingMode(QString modeName)
{
 if ( modeName == "Off"
 || modeName == "Passive"
 || modeName == "Safe"
 || modeName == "Full" )
 {
 returnRoomba::roombaOperatingMode roombaOperatingMode;= modeName;
 }
}
int16_t Roomba::getOpCode()
{
 return roombaCurrentOpCodeValue;
}
void Roomba::setRoombaOperatingModesetOpCode(QString modeNamereceivedCommandParameters)
{
 QStringList params_temp = receivedCommandParameters.split(",");
 int opCode_tmp = params_temp[0].toInt();
 switch(opCode_tmp){
 if/* Unknown OpCode (-1) */
 modeName == "Off" default:
 ||roombaCurrentOpCodeName modeName= =="Unknown";
 "Passive" roombaCurrentOpCodeValue = -1;
 ||break;
 modeName == "Safe" case ROOMBA_START:

 ||if( modeNameparams_temp.size() == "Full"(cmdStart.dataBytes + 1) )
 {
 Roomba: opCode_Start();
 }
 else
 {
 setError(2, cmdStart.commandName);
 }
 break;
 case ROOMBA_BAUD:roombaOperatingMode = modeName; if( params_temp.size() == (cmdBaud.dataBytes + 1) )
 {
  opCode_Baud(params_temp[1].toInt());
 }
 else
 {
 setError(2, cmdBaud.commandName);
 }
 break;
 }
}
void Roomba::opCode_Start()
{
 roombaCurrentOpCodeName = cmdStart.commandName;
 int16_troombaCurrentOpCodeValue Roomba::getOpCode= cmdStart.opCode;
 if(roombaOperatingMode == "Off")
 {
 returnsetMessage(1, roombaCurrentOpCodeValue;"Passive");
 }
 
 void Roomba::setOpCode(QString receivedCommandParameters)else
 {
 QStringList params_temp = receivedCommandParameters.split(",");
 int opCode_tmp = params_temp[0].toInt();
 
 switch(opCode_tmp){
 
 /* Unknown OpCode (-1) */
 default:
 roombaCurrentOpCodeName = "Unknown";
 roombaCurrentOpCodeValue = -1;
 break;
 
 case ROOMBA_START:
 
 if( params_temp.size() == (cmdStart.dataBytes + 1) )
 {
 opCode_Start();
 }
 else
 {
 setError(2, cmdStart.commandName);
 }
 break;
 
 case ROOMBA_BAUD:
 
 if( params_temp.size() == (cmdBaud.dataBytes + 1) )
 {
 opCode_Baud(params_temp[1].toInt());
 }
 else
 {
 setErrorsetMessage(2, cmdBaud.commandName"Passive");
 }
 break;
 }
 }
 setRoombaOperatingMode("Passive");

}
void Roomba::opCode_StartopCode_Baud(int16_t baudCode_tmp)
{
 if(roombaOperatingMode != "Off")
 {
 roombaCurrentOpCodeName = cmdStartcmdBaud.commandName;
 roombaCurrentOpCodeValue = cmdStartcmdBaud.opCode;
 if(roombaOperatingModeroombaBaudCode ==!= "Off"baudCode_tmp)
 {
 setMessage(13, "Passive"QString::number(baudCode_tmp));
 }
 else
 {
 setMessage(24, "Passive"QString::number(baudCode_tmp));
 }
 setRoombaOperatingModesetRoombaBaudCode("Passive"baudCode_tmp);
 }
 
 void Roomba::opCode_Baud(int16_t baudCode_tmp)else
 {
 if(roombaOperatingMode != "Off")
 {
 roombaCurrentOpCodeName = cmdBaud.commandName;
 roombaCurrentOpCodeValue = cmdBaud.opCode;
 if(roombaBaudCode != baudCode_tmp)
 {
 setMessage(3, QString::number(baudCode_tmp));
 }
 else
 {
 setMessage(4, QString::number(baudCode_tmp));
 }
 setRoombaBaudCode(baudCode_tmp);
 }
 else
 {
 setError(4, cmdBaud.commandName);
 }
 }
 
 void Roomba::initRoombaCommands(){
 // Set Commands
 cmdStart.commandName = "Start";
 cmdStart.opCode = ROOMBA_START;
 cmdStart.dataBytes = 0;
 
 cmdBaud.commandName = "Baud";
 cmdBaud.opCode = ROOMBA_BAUD;
 cmdBaud.dataBytes = 1;
 }
 
 void Roomba::setRoombaToDefaultValues(){
 // Set Default Values
 roombaBaudCode = 11; // Baudrate: 115200 Baud
 roombaOperatingMode = "Off"; // Mode: Safe
 roombaCurrentOpCodeName = ""; // OpCode: None (Idle)
 roombaCurrentOpCodeValue = -1; // OpCode: -1 (None)
 roombaErrorNumber = 0; // Error Code 0, no error
 roombaMessage = ""; // No Message
 }
}
 
void Roomba::initRoombaCommands(){
 // Set Commands
 cmdStart.commandName = "Start";
 cmdStart.opCode = ROOMBA_START;
 cmdStart.dataBytes = 0;
 cmdBaud.commandName = "Baud";
 cmdBaud.opCode = ROOMBA_BAUD;
 cmdBaud.dataBytes = 1;
}
void Roomba::setRoombaToDefaultValues(){
 // Set Default Values
 roombaBaudCode = 11; // Baudrate: 115200 Baud
 roombaOperatingMode = "Off"; // Mode: Safe
 roombaCurrentOpCodeName = ""; // OpCode: None (Idle)
 roombaCurrentOpCodeValue = -1; // OpCode: -1 (None)
 roombaErrorNumber = 0; // Error Code 0, no error
 roombaMessage = ""; // No Message
}

Many thanks in advance for any input you offer.

#roomba.cpp #include "roomba.h"

 /* OpCode Structs */
 struct roombaCommand {
 QString commandName;
 int opCode;
 int dataBytes;
 };
 
 roombaCommand cmdStart,
 cmdBaud,
 
 Roomba::Roomba()
 {
 setRoombaToDefaultValues();
 initRoombaCommands();
 }
 
 Roomba::~Roomba()
  {
 }
 
 QString Roomba::getError()
 {
 return roombaErrorMessage;
 }
 
 void Roomba::setError(int32_t error_tmp = 0, QString opcode_tmp = "")
{
 roombaErrorNumber = error_tmp;

 switch(roombaErrorNumber){
 default: roombaErrorMessage =
 "An error ocurred, but no error message was specified.";
 break;
 case 1: roombaErrorMessage =
 "An unknown error ocurred.";
 break;
 case 2: roombaErrorMessage =
 "Invalid number op parameters for OpCode \"" + opcode_tmp + "\".";
 break;
 case 3: roombaErrorMessage =
 "Invalid baudcode specified for OpCode \"Baud\". Only the values 0-11 are accepted.";
 break;
 case 4: roombaErrorMessage =
 "Invalid operating mode for opcode \"" + opcode_tmp + "\". OpCode not availabe in " + roombaOperatingMode + " mode.";
 break;
 }
 
 }
 
 QString Roomba::getMessage()
 {
 return roombaMessage;
 }
 
 void Roomba::setMessage(int32_t message_tmp = 0, QString parameter_tmp = "")
{
 switch(message_tmp){
 default: roombaMessage =
 "";
 break;
 case 1: roombaMessage =
 "Changed roomba operating mode to \"" + parameter_tmp + "\".";
 break;
 case 2: roombaMessage =
 "Roomba operating mode was already set to \"" + parameter_tmp + "\". Operating mode remains unchanged.";
 break;
 case 3: roombaMessage =
 "Changed roomba baudcode to \"" + parameter_tmp + "\".";
 break;
 case 4: roombaMessage =
 "Roomba baudcode was already set to \"" + parameter_tmp + "\". Baudcode remains unchanged.";
 break;
 }
 
 }
 
 int16_t Roomba::getRoombaBaudCode()
 {
 return roombaBaudCode;
 }
 
 void Roomba::setRoombaBaudCode(int16_t baudCode)
 {
 if (baudCode >= 0 && baudCode <= 11)
 {
 roombaBaudCode = baudCode;
 }
 else
 {
 setError(3);
 }
 }
 
 QString Roomba::getRoombaOperatingMode()
 {
 return roombaOperatingMode;
 }
 
 void Roomba::setRoombaOperatingMode(QString modeName)
 {
 if ( modeName == "Off"
 || modeName == "Passive"
 || modeName == "Safe"
 || modeName == "Full" )
 {
 Roomba::roombaOperatingMode = modeName;
 }
 }
 
 int16_t Roomba::getOpCode()
 {
 return roombaCurrentOpCodeValue;
 }
 
 void Roomba::setOpCode(QString receivedCommandParameters)
 {
 QStringList params_temp = receivedCommandParameters.split(",");
 int opCode_tmp = params_temp[0].toInt();
 
 switch(opCode_tmp){
 
 /* Unknown OpCode (-1) */
 default:
 roombaCurrentOpCodeName = "Unknown";
 roombaCurrentOpCodeValue = -1;
 break;
 
 case ROOMBA_START:
 
 if( params_temp.size() == (cmdStart.dataBytes + 1) )
 {
 opCode_Start();
 }
 else
 {
 setError(2, cmdStart.commandName);
 }
 break;
 
 case ROOMBA_BAUD:
 
 if( params_temp.size() == (cmdBaud.dataBytes + 1) )
 {
 opCode_Baud(params_temp[1].toInt());
 }
 else
 {
 setError(2, cmdBaud.commandName);
 }
 break;
 }
 }
 
void Roomba::opCode_Start()
 {
 roombaCurrentOpCodeName = cmdStart.commandName;
 roombaCurrentOpCodeValue = cmdStart.opCode;
 if(roombaOperatingMode == "Off")
 {
 setMessage(1, "Passive");
 }
 else
 {
 setMessage(2, "Passive");
 }
 setRoombaOperatingMode("Passive");
 }
 
 void Roomba::opCode_Baud(int16_t baudCode_tmp)
 {
 if(roombaOperatingMode != "Off")
 {
 roombaCurrentOpCodeName = cmdBaud.commandName;
 roombaCurrentOpCodeValue = cmdBaud.opCode;
 if(roombaBaudCode != baudCode_tmp)
 {
 setMessage(3, QString::number(baudCode_tmp));
 }
 else
 {
 setMessage(4, QString::number(baudCode_tmp));
 }
 setRoombaBaudCode(baudCode_tmp);
 }
 else
 {
 setError(4, cmdBaud.commandName);
 }
 }
 
 void Roomba::initRoombaCommands(){
 // Set Commands
 cmdStart.commandName = "Start";
 cmdStart.opCode = ROOMBA_START;
 cmdStart.dataBytes = 0;
 
 cmdBaud.commandName = "Baud";
 cmdBaud.opCode = ROOMBA_BAUD;
 cmdBaud.dataBytes = 1;
 }
 
 void Roomba::setRoombaToDefaultValues(){
 // Set Default Values
 roombaBaudCode = 11; // Baudrate: 115200 Baud
 roombaOperatingMode = "Off"; // Mode: Safe
 roombaCurrentOpCodeName = ""; // OpCode: None (Idle)
 roombaCurrentOpCodeValue = -1; // OpCode: -1 (None)
 roombaErrorNumber = 0; // Error Code 0, no error
 roombaMessage = ""; // No Message
 }

Many thanks in advance for any input you offer.

#roomba.cpp

#include "roomba.h"
/* OpCode Structs */
struct roombaCommand {
 QString commandName;
 int opCode;
 int dataBytes;
};

roombaCommand cmdStart,
  cmdBaud,
Roomba::Roomba()
{
 setRoombaToDefaultValues();
 initRoombaCommands();
}
Roomba::~Roomba()
{
}
QString Roomba::getError()
{
 return roombaErrorMessage;
}
void Roomba::setError(int32_t error_tmp = 0, QString opcode_tmp = "")
{
 roombaErrorNumber = error_tmp;
 switch(roombaErrorNumber){
 default: roombaErrorMessage =
 "An error ocurred, but no error message was specified.";
 break;
 case 1: roombaErrorMessage =
 "An unknown error ocurred.";
 break;
 case 2: roombaErrorMessage =
 "Invalid number op parameters for OpCode \"" + opcode_tmp + "\".";
 break;
 case 3: roombaErrorMessage =
 "Invalid baudcode specified for OpCode \"Baud\". Only the values 0-11 are accepted.";
 break;
 case 4: roombaErrorMessage =
 "Invalid operating mode for opcode \"" + opcode_tmp + "\". OpCode not availabe in " + roombaOperatingMode + " mode.";
 break;
 }

}
QString Roomba::getMessage()
{
  return roombaMessage;
}
void Roomba::setMessage(int32_t message_tmp = 0, QString parameter_tmp = "")
{
 switch(message_tmp){
 default: roombaMessage =
 "";
 break;
 case 1: roombaMessage =
 "Changed roomba operating mode to \"" + parameter_tmp + "\".";
 break;
 case 2: roombaMessage =
 "Roomba operating mode was already set to \"" + parameter_tmp + "\". Operating mode remains unchanged.";
 break;
 case 3: roombaMessage =
 "Changed roomba baudcode to \"" + parameter_tmp + "\".";
 break;
 case 4: roombaMessage =
 "Roomba baudcode was already set to \"" + parameter_tmp + "\". Baudcode remains unchanged.";
 break;
 }

}
int16_t Roomba::getRoombaBaudCode()
{
 return roombaBaudCode;
}
void Roomba::setRoombaBaudCode(int16_t baudCode)
{
 if (baudCode >= 0 && baudCode <= 11)
 {
 roombaBaudCode = baudCode;
 }
 else
 {
 setError(3);
 }
}
QString Roomba::getRoombaOperatingMode()
{
 return roombaOperatingMode;
}
void Roomba::setRoombaOperatingMode(QString modeName)
{
 if ( modeName == "Off"
 || modeName == "Passive"
 || modeName == "Safe"
 || modeName == "Full" )
 {
 Roomba::roombaOperatingMode = modeName;
 }
}
int16_t Roomba::getOpCode()
{
 return roombaCurrentOpCodeValue;
}
void Roomba::setOpCode(QString receivedCommandParameters)
{
 QStringList params_temp = receivedCommandParameters.split(",");
 int opCode_tmp = params_temp[0].toInt();
 switch(opCode_tmp){
 /* Unknown OpCode (-1) */
  default:
 roombaCurrentOpCodeName = "Unknown";
  roombaCurrentOpCodeValue = -1;
 break;
  case ROOMBA_START:

 if( params_temp.size() == (cmdStart.dataBytes + 1) )
 {
  opCode_Start();
 }
 else
 {
 setError(2, cmdStart.commandName);
 }
 break;
 case ROOMBA_BAUD:  if( params_temp.size() == (cmdBaud.dataBytes + 1) )
 {
  opCode_Baud(params_temp[1].toInt());
 }
 else
 {
 setError(2, cmdBaud.commandName);
 }
 break;
 }
}
void Roomba::opCode_Start()
{
 roombaCurrentOpCodeName = cmdStart.commandName;
 roombaCurrentOpCodeValue = cmdStart.opCode;
 if(roombaOperatingMode == "Off")
 {
 setMessage(1, "Passive");
 }
 else
 {
 setMessage(2, "Passive");
 }
 setRoombaOperatingMode("Passive");

}
void Roomba::opCode_Baud(int16_t baudCode_tmp)
{
 if(roombaOperatingMode != "Off")
 {
 roombaCurrentOpCodeName = cmdBaud.commandName;
 roombaCurrentOpCodeValue = cmdBaud.opCode;
 if(roombaBaudCode != baudCode_tmp)
 {
 setMessage(3, QString::number(baudCode_tmp));
 }
 else
 {
 setMessage(4, QString::number(baudCode_tmp));
 }
 setRoombaBaudCode(baudCode_tmp);
 }
 else
 {
 setError(4, cmdBaud.commandName);
 }
}
 
void Roomba::initRoombaCommands(){
 // Set Commands
 cmdStart.commandName = "Start";
 cmdStart.opCode = ROOMBA_START;
 cmdStart.dataBytes = 0;
 cmdBaud.commandName = "Baud";
 cmdBaud.opCode = ROOMBA_BAUD;
 cmdBaud.dataBytes = 1;
}
void Roomba::setRoombaToDefaultValues(){
 // Set Default Values
 roombaBaudCode = 11; // Baudrate: 115200 Baud
 roombaOperatingMode = "Off"; // Mode: Safe
 roombaCurrentOpCodeName = ""; // OpCode: None (Idle)
 roombaCurrentOpCodeValue = -1; // OpCode: -1 (None)
 roombaErrorNumber = 0; // Error Code 0, no error
 roombaMessage = ""; // No Message
}
made my wording more consistent for clarity.
Source Link
Loading
Source Link
Loading
lang-cpp

AltStyle によって変換されたページ (->オリジナル) /