class Appl: numArg function added; ebusd_send: get, set, cyc commands implemented.
This commit is contained in:
+14
-5
@@ -26,7 +26,12 @@ Appl& A = Appl::Instance();
|
||||
|
||||
void define_args()
|
||||
{
|
||||
A.addArgs("type value", 2);
|
||||
A.addArgs("Arg1 Arg2 Arg3 (Arg4)\n\n"
|
||||
"Arg1-4:\n"
|
||||
" get class cmd (sub)\n"
|
||||
" set class cmd value\n"
|
||||
" cyc class cmd (sub)\n"
|
||||
" hex type value (value: ZZ PB SB NN Dx)", 3);
|
||||
|
||||
A.addItem("p_server", Appl::Param("localhost"), "s", "server",
|
||||
"name or ip (localhost)",
|
||||
@@ -58,14 +63,18 @@ int main(int argc, char* argv[])
|
||||
exit(EXIT_SUCCESS);
|
||||
}
|
||||
|
||||
// build message
|
||||
std::string message(A.getArg(0));
|
||||
for (size_t i = 1; i < A.numArg(); i++) {
|
||||
message += " ";
|
||||
message += A.getArg(i);
|
||||
}
|
||||
|
||||
TCPClient* client = new TCPClient();
|
||||
TCPSocket* socket = client->connect(A.getParam<const char*>("p_server"), A.getParam<int>("p_port"));
|
||||
|
||||
if (socket != NULL) {
|
||||
std::string message("hex ");
|
||||
message += A.getArg(1);
|
||||
message += " ";
|
||||
message += A.getArg(2);
|
||||
|
||||
|
||||
socket->send(message.c_str(), message.size());
|
||||
|
||||
|
||||
+10
-3
@@ -121,9 +121,16 @@ bool Appl::parseArgs(int argc, char* argv[])
|
||||
|
||||
// check args
|
||||
if (m_argNum > 0) {
|
||||
for (int i = 0; i <= m_argNum; i++)
|
||||
if (m_argv[m_argc - 1 - i].rfind("-", 0) != std::string::npos)
|
||||
return false;
|
||||
if (m_argc < (m_argNum + 1))
|
||||
return false;
|
||||
|
||||
for (int i = 1; i < m_argc; i++) {
|
||||
if (m_argv[i].rfind("-", 0) != std::string::npos) {
|
||||
i++;
|
||||
continue;
|
||||
}
|
||||
m_argValues.push_back(m_argv[i]);
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
|
||||
+7
-4
@@ -62,7 +62,8 @@ public:
|
||||
~Appl();
|
||||
|
||||
void addArgs(const std::string argTxt, const int argNum);
|
||||
std::string getArg(const int argNum) const { return m_argv[m_argc - 1 - m_argNum + argNum]; }
|
||||
size_t numArg() const { return m_argValues.size(); }
|
||||
std::string getArg(const int argNum) const { return m_argValues[argNum]; }
|
||||
|
||||
void addItem(const char* name, Param param, const char* shortname,
|
||||
const char* longname, const char* description,
|
||||
@@ -87,9 +88,6 @@ private:
|
||||
Optiontype optiontype;
|
||||
};
|
||||
|
||||
std::string m_argTxt;
|
||||
int m_argNum;
|
||||
|
||||
int m_argc;
|
||||
std::vector<std::string> m_argv;
|
||||
|
||||
@@ -99,6 +97,11 @@ private:
|
||||
std::map<const char*, Param> m_params;
|
||||
std::map<const char*, Param>::iterator p_it;
|
||||
|
||||
std::string m_argTxt;
|
||||
int m_argNum;
|
||||
|
||||
std::vector<std::string> m_argValues;
|
||||
|
||||
bool checkArg(const std::string& name, const std::string& arg);
|
||||
|
||||
void addParam(const char* name, Param param) { m_params[name] = param; }
|
||||
|
||||
Reference in New Issue
Block a user