void setup_serial(const char *port) { char temp[140]; int i,ret; /* Detect the ups baudrate */ for (i=0; i<5; i++) { ser_set_speed(upsfd, device_path,baud_rates[i].rate); ret = ser_send(upsfd, "^P003MAN"); ret = sec_upsrecv(temp); if (ret >= -1) break; } if (i == 5) { printf("Can't talk to UPS on port %s!\n",port); printf("Check the cabling and portname and try again\n"); printf("Please note that this driver only support UPS Models with SEC Protorol\n"); ser_close(upsfd, device_path); exit (1); } printf("Connected to UPS on %s baudrate: %d\n",port, baud_rates[i].name); }
//----------------------------------------------------------------------------- int main ( int argc, char *argv[] ) { unsigned int ra; unsigned int rb; if(argc<2) { fprintf(stderr,"progpluto /dev/ttySOMETHING\n"); return(1); } if(ser_open(argv[1])) return(1); while(1) { rb=ser_copystring(rdata); for(ra=0;ra<rb;ra++) { printf("0x%02X ",rdata[ra]); if((rdata[ra]>=0x20)&&(rdata[ra]<127)) printf("[%c]",rdata[ra]); printf("\n"); } ser_dump(rb); } ser_close(); return(0); }
void upsdrv_cleanup(void) { #ifndef TESTING ser_set_dtr(upsfd, 0); ser_close(upsfd, device_path); #endif }
//----------------------------------------------------------------------------- //----------------------------------------------------------------------------- int sync_wait_for ( unsigned char *patt, unsigned int len ) { unsigned int ra,rb; // unsigned int rblast; //printf("-- %u\n",len); // rblast=0; while(1) { rb=ser_copystring(rdata); //if(rb!=rblast) //{ //for(ra=rblast;ra<rb;ra++) printf("0x%02X\n",rdata[ra]); //rblast=rb; //} if(rb>=len) { for(ra=0;ra<len;ra++) if(patt[ra]!=rdata[ra]) break; if(ra<len) { printf("fail\n"); for(ra=0;ra<len;ra++) printf("0x%02X 0x%02X %c\n",rdata[ra],patt[ra],rdata[ra]); ser_close(); return(1); } break; } } ser_dump(len); return(0); }
/** * Reopen serial port. */ static struct KFile *ser_reopen(struct KFile *fd) { Serial *fds = SERIAL_CAST(fd); ser_close(fd); ser_open(fds, fds->unit); return (KFile *)fds; }
// Shut down connection void transport_close (Transport *tpt) { if (tpt->fd != INVALID_TRANSPORT) { ser_close( tpt->fd ); tpt->fd = INVALID_TRANSPORT; } }
int main() { union filedescriptor fd; union pinfo pinfo; pinfo.baud = 115200; ser_open("/dev/ttyO4",pinfo,&fd); ser_close(&fd); return 0; }
int main( int argc, const char **argv ) { long serspeed; if( argc < 4 ) { fprintf( stderr, "Usage: %s <port> <speed> <dirname> [-v]\n", argv[ 0 ] ); fprintf( stderr, "(use -v for verbose output).\n"); return 1; } if( secure_atoi( argv[ SPEED_ARG_IDX ], &serspeed ) == 0 ) { fprintf( stderr, "Invalid speed\n" ); return 1; } if( !os_isdir( argv[ DIRNAME_ARG_IDX ] ) ) { fprintf( stderr, "Invalid directory %s\n", argv[ DIRNAME_ARG_IDX ] ); return 1; } if( ( argc >= 5 ) && !strcmp( argv[ VERBOSE_ARG_IDX ], "-v" ) ) log_init( LOG_ALL ); else log_init( LOG_NONE ); // Setup RFS server server_setup( argv[ DIRNAME_ARG_IDX ] ); // Setup serial port if( ( ser = ser_open( argv[ PORT_ARG_IDX ] ) ) == ( ser_handler )-1 ) { fprintf( stderr, "Cannot open port %s\n", argv[ PORT_ARG_IDX ] ); return 1; } if( ser_setup( ser, ( u32 )serspeed, SER_DATABITS_8, SER_PARITY_NONE, SER_STOPBITS_1 ) != SER_OK ) { fprintf( stderr, "Unable to initialize serial port\n" ); return 1; } flush_serial(); // User report printf( "Running RFS server on port %s (%u baud) in directory %s\n", argv[ PORT_ARG_IDX ], ( unsigned )serspeed, argv[ DIRNAME_ARG_IDX ] ); // Enter the server endless loop while( 1 ) { read_request_packet(); server_execute_request( rfs_buffer ); send_response_packet(); } ser_close( ser ); return 0; }
void closePort(void) { #ifndef Q_OS_WIN32 ser_close(&portFD); #else if (!_port) return; _port->close(); delete _port; #endif }
//----------------------------------------------------------------------------- int main ( int argc, char *argv[] ) { unsigned int ra,rb,rc,rd; int ea; if(argc<3) { fprintf(stderr,"proglpc /dev/ttySOMETHING program.bin\n"); fdatalen=0; } else { fp=fopen(argv[2],"rb"); if(fp==NULL) { fprintf(stderr,"Error opening file [%s]\n",argv[2]); return(1); } memset(fdata,0xFF,sizeof(fdata)); fdatalen=fread(fdata,1,sizeof(fdata),fp); fclose(fp); if(fdatalen&3) fdatalen+=4; fdatalen>>=2; } if(argc>3) ea=1; else ea=0; if(ser_open(argv[1])) { printf("ser_open(%s) failed\n",argv[1]); return(1); } printf("port opened\n"); do_lpc_stuff(ea); ser_close(); return(0); }
//----------------------------------------------------------------------------- int main ( int argc, char *argv[] ) { if(argc<3) { fprintf(stderr,"prognxp_sram /dev/ttySOMETHING program.bin\n"); return(1); } fp=fopen(argv[2],"rb"); if(fp==NULL) { fprintf(stderr,"Error opening file [%s]\n",argv[2]); return(1); } memset(fdata,0xFF,sizeof(fdata)); fdatalen=fread(fdata,1,sizeof(fdata),fp); fclose(fp); printf("read %u bytes\n",fdatalen); if(fdatalen>0x800) { printf("Program too big\n"); return(1); } if(ser_open(argv[1])) { printf("ser_open(%s) failed\n",argv[1]); return(1); } printf("port opened\n"); do_nxp_stuff(); ser_close(); return(0); }
void upsdrv_cleanup(void) { /* free(dynamic_mem); */ ser_close(upsfd, device_path); }
void upsdrv_cleanup(void) { ser_close(upsfd, device_path); }
void upsdrv_cleanup(void) { ser_set_dtr(upsfd, 0); ser_close(upsfd, device_path); }
//----------------------------------------------------------------------------- int main ( int argc, char *argv[] ) { //struct termios newsettings; if(argc<2) { printf(".hex file not specified\n"); return(1); } fp=fopen(argv[1],"rt"); if(fp==NULL) { printf("error opening file %s\n",argv[1]); return(1); } if(readhex()) return(1); fclose(fp); pages=maxadd>>8; printf("pages %u maxadd %u\n",pages,maxadd); if(ser_open()) { printf("ser_open() failed\n"); return(1); } printf("port opened\n"); if(get_sync()) { ser_close(); printf("\n\n"); return(1); } sdata[0]=0x41; sdata[1]=0x81; sdata[2]=0x20; ser_senddata(sdata,3); while(1) { rb=ser_copystring(data); if(rb==3) break; } ser_dump(rb); showstring(rb); sdata[0]=0x41; sdata[1]=0x82; sdata[2]=0x20; ser_senddata(sdata,3); while(1) { rb=ser_copystring(data); if(rb==3) break; } ser_dump(rb); showstring(rb); sdata[0]=0x50; sdata[1]=0x20; ser_senddata(sdata,2); while(1) { rb=ser_copystring(data); if(rb==2) break; } ser_dump(rb); showstring(rb); if((data[0]==0x14)&&(data[1]==0x10)) { } else { ser_close(); printf("\n\n"); return(1); } for(page=0;page<=maxadd;page+=256) { printf("set address 0x%04X\n",page); sdata[0]=0x55; sdata[1]=(page>>1)&0xFF; sdata[2]=(page>>9)&0xFF; sdata[3]=0x20; ser_senddata(sdata,4); while(1) { rb=ser_copystring(data); if(rb==2) break; } ser_dump(rb); showstring(rb); printf("write page\n"); sdata[0]=0x64; sdata[1]=0x01; sdata[2]=0x00; sdata[3]='F'; for(ra=0;ra<256;ra++) sdata[4+ra]=memory[ra+page]; sdata[4+ra]=0x20; ser_senddata(sdata,ra+5); while(1) { rb=ser_copystring(data); if(rb==2) break; } ser_dump(rb); showstring(rb); } sdata[0]=0x51; sdata[1]=0x20; ser_senddata(sdata,2); while(1) { rb=ser_copystring(data); if(rb==2) break; } ser_dump(rb); showstring(rb); if((data[0]==0x14)&&(data[1]==0x10)) { } else { ser_close(); printf("\n\n"); return(1); } ser_close(); printf("\n\n"); return(0); }