From c022f3ec0873f8c2cd91e26e1a965d92ed427383 Mon Sep 17 00:00:00 2001 From: Winfried Ritsch Date: Mon, 1 May 2006 20:23:03 +0000 Subject: help and verbose method for debug svn path=/trunk/externals/iem/comport/; revision=5043 --- comport/comport.c | 81 +++++++++++++++++++++++++++++++++++++++---------------- 1 file changed, 58 insertions(+), 23 deletions(-) diff --git a/comport/comport.c b/comport/comport.c index 25ff438..f9a1196 100644 --- a/comport/comport.c +++ b/comport/comport.c @@ -56,6 +56,8 @@ typedef struct comport int x_hit; double x_deltime; + int verbose; + } t_comport; #ifndef TRUE @@ -802,6 +804,8 @@ static void *comport_new(t_floatarg comnr, t_floatarg fbaud) { clock_delay(x->x_clock, x->x_deltime); + x->verbose = 0; + return x; } @@ -809,7 +813,7 @@ static void *comport_new(t_floatarg comnr, t_floatarg fbaud) { static void comport_free(t_comport *x) { - post("close serial..."); + post("free serial..."); clock_unset(x->x_clock); clock_free(x->x_clock); @@ -899,7 +903,8 @@ static void comport_xonxoff(t_comport *x,t_floatarg f) post("** ERROR ** could not set xonxoff of device %s\n", sys_com_port[x->comport]); } - else post("set xonxoff of %s to %f\n",sys_com_port[x->comport],f); + else if(x->verbose > 0) + post("set xonxoff of %s to %f\n",sys_com_port[x->comport],f); } static void comport_close(t_comport *x) @@ -929,7 +934,12 @@ static void comport_devicename(t_comport *x, t_symbol *s) { if(x->comport >= 0 && x->comport < COMPORT_MAX){ sys_com_port[x->comport] = s->s_name; + if(x->verbose > 0) + post("comport %d: set devicename %s",x->comport,sys_com_port[x->comport]); } + else if(x->verbose > 0) + post("comport %d: could not set devicename %s",x->comport,s->s_name); + } static void comport_print(t_comport *x, t_symbol *s, int argc, t_atom *argv) @@ -947,6 +957,38 @@ static void comport_print(t_comport *x, t_symbol *s, int argc, t_atom *argv) } } } +/* ---------------- HELPER ------------------------- */ +static void comport_verbose(t_comport *x, t_floatarg f) +{ + x->verbose = f; + if(f > 0) + post("Comport Verbose is on: %d", (int) f); +} + + +static void comport_help(t_comport *x) +{ + post("Comport %d (baud %f):",x->comport,x->baud); + if(x->comport >= 0 && x->comport < COMPORT_MAX){ + post("devicename: %s",sys_com_port[x->comport]); + } + + post(" Methods:"); + post(" baud ... set baudrate to nearest possible baud\n" + " bits ... set number of bits (7 or 8)\n" + " stopbit <0|1> ... set off|on stopbit\n" + " rtscts <0|1> ... set rts/cts off|on\n" + " parity <0|1> ... set parity off|on\n" + " xonxoff <0|1> ... set xon/xoff off|on\n" + " close ... close device\n" + " open ... open device number num\n" + " devicename ... set device name to s (eg. /dev/ttyS8)\n" + " print ... print list of atoms on serial\n" + " pollintervall ... set poll ibntervall to t ticks\n" + " verbose ... for debug set verbosity to level\n" + " help ... post this help"); +} + /* ---------------- SETUP OBJECTS ------------------ */ void comport_setup(void) @@ -961,29 +1003,22 @@ void comport_setup(void) /* class_addbang(comport_class, comport_bang */ - class_addmethod(comport_class, (t_method)comport_baud, gensym("baud"), - A_FLOAT, 0); + class_addmethod(comport_class, (t_method)comport_baud, gensym("baud"),A_FLOAT, 0); - class_addmethod(comport_class, (t_method)comport_bits, gensym("bits"), - A_FLOAT, 0); - class_addmethod(comport_class, (t_method)comport_stopbit, gensym("stopbit"), - A_FLOAT, 0); - class_addmethod(comport_class, (t_method)comport_rtscts, gensym("rtscts"), - A_FLOAT, 0); - class_addmethod(comport_class, (t_method)comport_parity, gensym("parity"), - A_FLOAT, 0); - class_addmethod(comport_class, (t_method)comport_xonxoff, gensym("xonxoff"), - A_FLOAT, 0); + class_addmethod(comport_class, (t_method)comport_bits, gensym("bits"), A_FLOAT, 0); + class_addmethod(comport_class, (t_method)comport_stopbit, gensym("stopbit"), A_FLOAT, 0); + class_addmethod(comport_class, (t_method)comport_rtscts, gensym("rtscts"), A_FLOAT, 0); + class_addmethod(comport_class, (t_method)comport_parity, gensym("parity"), A_FLOAT, 0); + class_addmethod(comport_class, (t_method)comport_xonxoff, gensym("xonxoff"), A_FLOAT, 0); class_addmethod(comport_class, (t_method)comport_close, gensym("close"), 0); - class_addmethod(comport_class, (t_method)comport_open, gensym("open"), - A_FLOAT, 0); - class_addmethod(comport_class, (t_method)comport_devicename, gensym("devicename"), - A_SYMBOL, 0); - class_addmethod(comport_class, (t_method)comport_print, gensym("print"), - A_GIMME, 0); - - class_addmethod(comport_class, (t_method)comport_pollintervall, gensym("pollintervall"), - A_FLOAT, 0); + class_addmethod(comport_class, (t_method)comport_open, gensym("open"), A_FLOAT, 0); + class_addmethod(comport_class, (t_method)comport_devicename, gensym("devicename"), A_SYMBOL, 0); + class_addmethod(comport_class, (t_method)comport_print, gensym("print"), A_GIMME, 0); + class_addmethod(comport_class, (t_method)comport_pollintervall, gensym("pollintervall"), A_FLOAT, 0); + + class_addmethod(comport_class, (t_method)comport_verbose, gensym("verbose"), A_FLOAT, 0); + class_addmethod(comport_class, (t_method)comport_help, gensym("help"), 0); + #ifndef _WIN32 null_tv.tv_sec = 0; /* no wait */ null_tv.tv_usec = 0; -- cgit v1.2.1