Exemplo n.º 1
0
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);
}
Exemplo n.º 2
0
//-----------------------------------------------------------------------------
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);
}
Exemplo n.º 3
0
void upsdrv_cleanup(void)
{
#ifndef TESTING
	ser_set_dtr(upsfd, 0);
	ser_close(upsfd, device_path);
#endif
}
Exemplo n.º 4
0
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
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);
}
Exemplo n.º 5
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;
}
Exemplo n.º 6
0
// Shut down connection
void transport_close (Transport *tpt)
{
  if (tpt->fd != INVALID_TRANSPORT)
  {
    ser_close( tpt->fd );
    tpt->fd = INVALID_TRANSPORT;
  }
}
Exemplo n.º 7
0
int main()
{	
	union filedescriptor fd;
	union pinfo pinfo;
	pinfo.baud = 115200;
	
	ser_open("/dev/ttyO4",pinfo,&fd);
	ser_close(&fd);
	return 0;
}
Exemplo n.º 8
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;
}
Exemplo n.º 9
0
void closePort(void)
{
#ifndef Q_OS_WIN32
    ser_close(&portFD);
#else
    if (!_port)
        return;
    _port->close();
    delete _port;
#endif
}
Exemplo n.º 10
0
//-----------------------------------------------------------------------------
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);
}
Exemplo n.º 11
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);
}
Exemplo n.º 12
0
void upsdrv_cleanup(void)
{
	/* free(dynamic_mem); */
	ser_close(upsfd, device_path);
}
Exemplo n.º 13
0
void upsdrv_cleanup(void)
{
	ser_close(upsfd, device_path);
}
Exemplo n.º 14
0
Arquivo: ivtscd.c Projeto: sbutler/nut
void upsdrv_cleanup(void)
{
	ser_set_dtr(upsfd, 0);
	ser_close(upsfd, device_path);
}
Exemplo n.º 15
0
//-----------------------------------------------------------------------------
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);
}