#include "simcl.h"
// local
-#include "cmdsetcl.h"
-#include "newcmdcl.h"
+#include "timercl.h"
/*
*----------------------------------------------------------------------------
*/
-int
-cl_timer_cmd::do_work(class cl_sim *sim,
- class cl_cmdline *cmdline, class cl_console *con)
+//int
+//cl_timer_cmd::do_work(class cl_sim *sim,
+// class cl_cmdline *cmdline, class cl_console *con)
+COMMAND_DO_WORK_UC(cl_timer_cmd)
{
char *s;
if (cmdline->param(0) == 0)
{
if (long_help)
- con->printf("%s\n", long_help);
+ con->dd_printf("%s\n", long_help);
else
- con->printf("What to do?\n");
+ con->dd_printf("What to do?\n");
return(0);
}
if ((s= cmdline->param(0)->get_svalue()))
{
if (cmdline->param(1) == 0)
{
- con->printf("Timer number is missing\n");
+ con->dd_printf("Timer number is missing\n");
return(0);
}
- set_ticker(sim, cmdline->param(1));
+ set_ticker(uc, cmdline->param(1));
if (strstr(s, "c") == s ||
strstr(s, "m") == s ||
strstr(s, "a") == s)
- return(add(sim, cmdline, con));
+ return(add(uc, cmdline, con));
else if (strstr(s, "d") == s)
- return(del(sim, cmdline, con));
+ return(del(uc, cmdline, con));
else if (strstr(s, "g") == s)
- return(get(sim, cmdline, con));
+ return(get(uc, cmdline, con));
else if (strstr(s, "r") == s)
- return(run(sim, cmdline, con));
+ return(run(uc, cmdline, con));
else if (strstr(s, "s") == s)
- return(stop(sim, cmdline, con));
+ return(stop(uc, cmdline, con));
else if (strstr(s, "v") == s)
- return(val(sim, cmdline, con));
+ return(val(uc, cmdline, con));
else
- con->printf("Undefined timer command: \"%s\". Try \"help timer\"\n",
+ con->dd_printf("Undefined timer command: \"%s\". Try \"help timer\"\n",
s);
}
return(0);
}
void
-cl_timer_cmd::set_ticker(class cl_sim *sim,
+cl_timer_cmd::set_ticker(class cl_uc *uc,
class cl_cmd_arg *param)
{
- if ((name= param->get_svalue()))
- ticker= sim->uc->get_counter(name);
+ if (set_name(param->get_svalue()))
+ ticker= uc->get_counter(get_name());
else
if (param->get_ivalue(&what))
- ticker= sim->uc->get_counter(what);
+ ticker= uc->get_counter(what);
}
/*
*/
int
-cl_timer_cmd::add(class cl_sim *sim,
+cl_timer_cmd::add(class cl_uc *uc,
class cl_cmdline *cmdline, class cl_console *con)
{
class cl_cmd_arg *params[4]= { cmdline->param(0),
cmdline->param(3) };
long dir= +1, in_isr= 0;
- if (!name &&
+ if (!get_name() &&
what < 1)
{
- con->printf("Error: Timer id must be greater then zero or a string\n");
+ con->dd_printf("Error: Timer id must be greater then zero or a string\n");
return(DD_FALSE);
}
if (ticker)
{
- if (name)
- con->printf("Error: Timer \"%s\" already exists\n", name);
+ if (get_name())
+ con->dd_printf("Error: Timer \"%s\" already exists\n", get_name());
else
- con->printf("Error: Timer %d already exists\n", what);
+ con->dd_printf("Error: Timer %d already exists\n", what);
return(0);
}
if (params[2])
if (!params[2]->get_ivalue(&dir))
{
- con->printf("Error: Wrong direction\n");
+ con->dd_printf("Error: Wrong direction\n");
return(DD_FALSE);
}
if (params[3])
if (!params[3]->get_ivalue(&in_isr))
{
- con->printf("Error: Wrong parameter\n");
+ con->dd_printf("Error: Wrong parameter\n");
return(DD_FALSE);
}
- if (name)
+ if (get_name())
{
- ticker= new cl_ticker(dir, in_isr, name);
- sim->uc->add_counter(ticker, name);
+ ticker= new cl_ticker(dir, in_isr, get_name());
+ uc->add_counter(ticker, get_name());
}
else
{
ticker= new cl_ticker(dir, in_isr, 0);
- sim->uc->add_counter(ticker, what);
+ uc->add_counter(ticker, what);
}
return(DD_FALSE);
*/
int
-cl_timer_cmd::del(class cl_sim *sim,
+cl_timer_cmd::del(class cl_uc *uc,
class cl_cmdline *cmdline, class cl_console *con)
{
if (!ticker)
{
- if (name)
- con->printf("Timer \"%s\" does not exist\n", name);
+ if (get_name())
+ con->dd_printf("Timer \"%s\" does not exist\n", get_name());
else
- con->printf("Timer %d does not exist\n", what);
+ con->dd_printf("Timer %d does not exist\n", what);
return(0);
}
- if (name)
- sim->uc->del_counter(name);
+ if (get_name())
+ uc->del_counter(get_name());
else
- sim->uc->del_counter(what);
+ uc->del_counter(what);
return(0);
}
*/
int
-cl_timer_cmd::get(class cl_sim *sim,
+cl_timer_cmd::get(class cl_uc *uc,
class cl_cmdline *cmdline, class cl_console *con)
{
if (ticker)
- ticker->dump(what, sim->uc->xtal, con);
+ ticker->dump(what, uc->xtal, con);
else
{
- sim->uc->ticks->dump(0, sim->uc->xtal, con);
- sim->uc->isr_ticks->dump(0, sim->uc->xtal, con);
- sim->uc->idle_ticks->dump(0, sim->uc->xtal, con);
- for (what= 0; what < sim->uc->counters->count; what++)
+ uc->ticks->dump(0, uc->xtal, con);
+ uc->isr_ticks->dump(0, uc->xtal, con);
+ uc->idle_ticks->dump(0, uc->xtal, con);
+ for (what= 0; what < uc->counters->count; what++)
{
- ticker= sim->uc->get_counter(what);
+ ticker= uc->get_counter(what);
if (ticker)
- ticker->dump(what, sim->uc->xtal, con);
+ ticker->dump(what, uc->xtal, con);
}
}
*/
int
-cl_timer_cmd::run(class cl_sim *sim,
+cl_timer_cmd::run(class cl_uc *uc,
class cl_cmdline *cmdline, class cl_console *con)
{
if (!ticker)
{
- if (name)
- con->printf("Timer %d does not exist\n", name);
+ if (get_name())
+ con->dd_printf("Timer %d does not exist\n", get_name());
else
- con->printf("Timer %d does not exist\n", what);
+ con->dd_printf("Timer %d does not exist\n", what);
return(0);
}
ticker->options|= TICK_RUN;
*/
int
-cl_timer_cmd::stop(class cl_sim *sim,
+cl_timer_cmd::stop(class cl_uc *uc,
class cl_cmdline *cmdline, class cl_console *con)
{
if (!ticker)
{
- if (name)
- con->printf("Timer %d does not exist\n", name);
+ if (get_name())
+ con->dd_printf("Timer %d does not exist\n", get_name());
else
- con->printf("Timer %d does not exist\n", what);
+ con->dd_printf("Timer %d does not exist\n", what);
return(0);
}
ticker->options&= ~TICK_RUN;
*/
int
-cl_timer_cmd::val(class cl_sim *sim,
+cl_timer_cmd::val(class cl_uc *uc,
class cl_cmdline *cmdline, class cl_console *con)
{
class cl_cmd_arg *params[4]= { cmdline->param(0),
if (!ticker)
{
- if (name)
- con->printf("Error: Timer %d does not exist\n", name);
+ if (get_name())
+ con->dd_printf("Error: Timer %d does not exist\n", get_name());
else
- con->printf("Error: Timer %d does not exist\n", what);
+ con->dd_printf("Error: Timer %d does not exist\n", what);
return(0);
}
if (params[2])
{
- con->printf("Error: Value is missing\n");
+ con->dd_printf("Error: Value is missing\n");
return(DD_FALSE);
}
long val;
if (!params[2]->get_ivalue(&val))
{
- con->printf("Error: Wrong parameter\n");
+ con->dd_printf("Error: Wrong parameter\n");
return(DD_FALSE);
}
ticker->ticks= val;