v0.0.3: just fix for usage with libusefull_macros v0.3.2

This commit is contained in:
Edward Emelianov 2025-05-05 15:57:03 +03:00
parent f3023b1cc0
commit 3e8c0a6343
4 changed files with 31 additions and 31 deletions

View File

@ -41,7 +41,7 @@ This file should provide next functions:
int canbus_read(CANmesg *mesg) - blocking read (broadcast if ID==0 or only from given ID) from can bus, return 0 if all OK int canbus_read(CANmesg *mesg) - blocking read (broadcast if ID==0 or only from given ID) from can bus, return 0 if all OK
*/ */
static TTY_descr *dev = NULL; // shoul be global to restore if die static sl_tty_t *dev = NULL; // shoul be global to restore if die
static int serialspeed = 115200; // speed to open serial device static int serialspeed = 115200; // speed to open serial device
static pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER; static pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;
@ -53,7 +53,7 @@ static char *read_string();
* @param length - buffer len * @param length - buffer len
* @return amount of bytes read * @return amount of bytes read
*/ */
static int read_ttyX(TTY_descr *d){ static int read_ttyX(sl_tty_t *d){
if(!d || d->comfd < 0) return -1; if(!d || d->comfd < 0) return -1;
size_t L = 0; size_t L = 0;
ssize_t l; ssize_t l;
@ -93,11 +93,11 @@ static int ttyWR(const char *buff, int len){
#ifdef EBUG #ifdef EBUG
int _U_ n = write(STDERR_FILENO, buff, len); int _U_ n = write(STDERR_FILENO, buff, len);
fprintf(stderr, "\n"); fprintf(stderr, "\n");
double t0 = dtime(); double t0 = sl_dtime();
#endif #endif
int w = write_tty(dev->comfd, buff, (size_t)len); int w = sl_tty_write(dev->comfd, buff, (size_t)len);
if(!w) w = write_tty(dev->comfd, "\n", 1); if(!w) w = sl_tty_write(dev->comfd, "\n", 1);
DBG("Written, dt=%g", dtime() - t0); DBG("Written, dt=%g", sl_dtime() - t0);
/* /*
int errctr = 0; int errctr = 0;
while(1){ while(1){
@ -111,12 +111,12 @@ static int ttyWR(const char *buff, int len){
}else break; }else break;
}*/ }*/
pthread_mutex_unlock(&mutex); pthread_mutex_unlock(&mutex);
DBG("Success, dt=%g", dtime() - t0); DBG("Success, dt=%g", sl_dtime() - t0);
return w; return w;
} }
void canbus_close(){ void canbus_close(){
if(dev) close_tty(&dev); if(dev) sl_tty_close(&dev);
} }
void setserialspeed(int speed){ void setserialspeed(int speed){
@ -132,11 +132,11 @@ int canbus_open(const char *devname){
WARNX("canbus_open(): need device name"); WARNX("canbus_open(): need device name");
return 1; return 1;
} }
if(dev) close_tty(&dev); if(dev) sl_tty_close(&dev);
dev = new_tty((char*)devname, serialspeed, BUFLEN); dev = sl_tty_new((char*)devname, serialspeed, BUFLEN);
if(dev){ if(dev){
if(!tty_open(dev, 1)) // blocking open if(!sl_tty_open(dev, 1)) // blocking open
close_tty(&dev); sl_tty_close(&dev);
} }
if(!dev){ if(!dev){
return 1; return 1;
@ -193,7 +193,7 @@ static char *read_string(){
return ptr; return ptr;
} }
ptr = buf; ptr = buf;
double d0 = dtime(); double d0 = sl_dtime();
do{ do{
if((l = read_ttyX(dev))){ if((l = read_ttyX(dev))){
if(l < 0){ if(l < 0){
@ -210,9 +210,9 @@ static char *read_string(){
DBG("Newline detected"); DBG("Newline detected");
break; break;
} }
d0 = dtime(); d0 = sl_dtime();
} }
}while(dtime() - d0 < WAIT_TMOUT && LL); }while(sl_dtime() - d0 < WAIT_TMOUT && LL);
if(r){ if(r){
buf[r] = 0; buf[r] = 0;
optr = strchr(buf, '\n'); optr = strchr(buf, '\n');
@ -226,7 +226,7 @@ static char *read_string(){
optr = NULL; optr = NULL;
return NULL; return NULL;
} }
DBG("buf: %s, time: %g", buf, dtime() - d0); DBG("buf: %s, time: %g", buf, sl_dtime() - d0);
return buf; return buf;
} }
return NULL; return NULL;
@ -254,14 +254,14 @@ void showM(CANmesg *m){
int canbus_read(CANmesg *mesg){ int canbus_read(CANmesg *mesg){
if(!mesg) return 1; if(!mesg) return 1;
pthread_mutex_lock(&mutex); pthread_mutex_lock(&mutex);
double t0 = dtime(); double t0 = sl_dtime();
int ID = mesg->ID; int ID = mesg->ID;
char *ans; char *ans;
CANmesg *m; CANmesg *m;
while(dtime() - t0 < T_POLLING_TMOUT){ // read answer while(sl_dtime() - t0 < T_POLLING_TMOUT){ // read answer
if((ans = read_string())){ // parse new data if((ans = read_string())){ // parse new data
if((m = parseCANmesg(ans))){ if((m = parseCANmesg(ans))){
DBG("Got canbus message (dT=%g):", dtime() - t0); DBG("Got canbus message (dT=%g):", sl_dtime() - t0);
#ifdef EBUG #ifdef EBUG
showM(m); showM(m);
#endif #endif

View File

@ -163,8 +163,8 @@ static SDO *getSDOans(uint16_t idx, uint8_t subidx, uint8_t NID){
FNAME(); FNAME();
CANmesg mesg; CANmesg mesg;
SDO *sdo = NULL; SDO *sdo = NULL;
double t0 = dtime(); double t0 = sl_dtime();
while(dtime() - t0 < T_POLLING_TMOUT){ while(sl_dtime() - t0 < T_POLLING_TMOUT){
mesg.ID = TSDO_COBID | NID; // read only from given ID mesg.ID = TSDO_COBID | NID; // read only from given ID
if(canbus_read(&mesg)){ if(canbus_read(&mesg)){
DBG("NO CAN data"); DBG("NO CAN data");
@ -193,9 +193,9 @@ static SDO *getSDOans(uint16_t idx, uint8_t subidx, uint8_t NID){
*/ */
SDO *readSDOvalue(uint16_t idx, uint8_t subidx, uint8_t NID){ SDO *readSDOvalue(uint16_t idx, uint8_t subidx, uint8_t NID){
FNAME(); FNAME();
double t0 = dtime(); double t0 = sl_dtime();
SDO *sdo = NULL; SDO *sdo = NULL;
for(int i = 0; i < NTRIES && dtime() - t0 < SDO_ANS_TIMEOUT; ++i){ for(int i = 0; i < NTRIES && sl_dtime() - t0 < SDO_ANS_TIMEOUT; ++i){
DBG("Try %d ...", i); DBG("Try %d ...", i);
if(ask2read(idx, subidx, NID)){ if(ask2read(idx, subidx, NID)){
DBG("Can't initiate upload"); DBG("Can't initiate upload");

View File

@ -56,7 +56,7 @@ static glob_pars const Gdefault = {
* Define command line options by filling structure: * Define command line options by filling structure:
* name has_arg flag val type argptr help * name has_arg flag val type argptr help
*/ */
static myoption cmdlnopts[] = { static sl_option_t cmdlnopts[] = {
// common options // common options
{"help", NO_ARGS, NULL, 'h', arg_int, APTR(&help), _("show this help")}, {"help", NO_ARGS, NULL, 'h', arg_int, APTR(&help), _("show this help")},
{"device", NEED_ARG, NULL, 'd', arg_string, APTR(&G.device), _("serial device name (default: " DEFAULT_PORTDEV ")")}, {"device", NEED_ARG, NULL, 'd', arg_string, APTR(&G.device), _("serial device name (default: " DEFAULT_PORTDEV ")")},
@ -99,14 +99,14 @@ glob_pars *parse_args(int argc, char **argv){
char helpstring[1024], *hptr = helpstring; char helpstring[1024], *hptr = helpstring;
snprintf(hptr, hlen, "Usage: %%s [args]\n\n\tWhere args are:\n"); snprintf(hptr, hlen, "Usage: %%s [args]\n\n\tWhere args are:\n");
// format of help: "Usage: progname [args]\n" // format of help: "Usage: progname [args]\n"
change_helpstring(helpstring); sl_helpstring(helpstring);
// parse arguments // parse arguments
parseargs(&argc, &argv, cmdlnopts); sl_parseargs(&argc, &argv, cmdlnopts);
if(help) showhelp(-1, cmdlnopts); if(help) sl_showhelp(-1, cmdlnopts);
if(argc > 0){ if(argc > 0){
WARNX("Extra arguments: "); WARNX("Extra arguments: ");
for (i = 0; i < argc; i++) fprintf(stderr, "\t%s\n", argv[i]); for (i = 0; i < argc; i++) fprintf(stderr, "\t%s\n", argv[i]);
showhelp(-1, cmdlnopts); sl_showhelp(-1, cmdlnopts);
} }
return &G; return &G;
} }

View File

@ -170,7 +170,7 @@ static inline void wait_busy(){
} }
int main(int argc, char *argv[]){ int main(int argc, char *argv[]){
initial_setup(); sl_init();
GP = parse_args(argc, argv); GP = parse_args(argc, argv);
if(GP->verblevel) maxmesglevl(GP->verblevel); if(GP->verblevel) maxmesglevl(GP->verblevel);
if(GP->checkfile){ // just check and exit if(GP->checkfile){ // just check and exit
@ -197,7 +197,7 @@ int main(int argc, char *argv[]){
} }
if(GP->enableESW && GP->disableESW) ERRX("Enable & disable ESW can't meet together"); if(GP->enableESW && GP->disableESW) ERRX("Enable & disable ESW can't meet together");
check4running(NULL, GP->pidfile); sl_check4running(NULL, GP->pidfile);
signal(SIGTERM, signals); // kill (-15) - quit signal(SIGTERM, signals); // kill (-15) - quit
signal(SIGHUP, SIG_IGN); // hup - ignore signal(SIGHUP, SIG_IGN); // hup - ignore
signal(SIGINT, signals); // ctrl+C - quit signal(SIGINT, signals); // ctrl+C - quit
@ -205,7 +205,7 @@ int main(int argc, char *argv[]){
signal(SIGTSTP, SIG_IGN); // ignore ctrl+Z signal(SIGTSTP, SIG_IGN); // ignore ctrl+Z
if(GP->logfile){ if(GP->logfile){
sl_loglevel l = LOGLVL + GP->verblevel; sl_loglevel_e l = LOGLVL + GP->verblevel;
if(l > LOGLEVEL_ANY) l = LOGLEVEL_ANY; if(l > LOGLEVEL_ANY) l = LOGLEVEL_ANY;
OPENLOG(GP->logfile, l, 1); OPENLOG(GP->logfile, l, 1);
LOGMSG(("Start application...")); LOGMSG(("Start application..."));