Styrning via serieport - nybörjartips önskas

G Hasse gh at raditex.se
Fri Oct 19 13:09:46 CEST 2007


On Fri, Oct 19, 2007 at 10:50:01AM +0200, Mackan wrote:
> Hej gott folk!
> 
> Kastar ur mig en fråga till alla busar, då jag vet att det finns mycket
> kompetent folk på denna lista, som brukar vara trevliga.
> 
> Jag har för avsikt att skriva ett mycket enkelt textbaserat program som
> ska användas för att skicka kommandom till en serieport.
> 
> Jag har aldrig berört detta område, så jag har i princip inga kunskaper om
> detta.
> 
> Tar tacksamt emot tips var jag ska börja läsa.
> 
> - *BSD eller *inux kvittar.
> - Hur ställer man in portens egenskaper? Speed, paritet o.s.v
> - Hur sänder man själva kommandot? Finns nåt mellanprogram som underlättar
> läsa/skriva från comportar?
> - Vill gärna göra ett mycket enkelt textgränssnitt, typ Dialog eller
> liknande. Eller något annat.
> - Jag har specifikationer på protokollet i fråga, gränssnittet ska bara
> användas för att enkelt fylla i värden som ska skickas.
> 
> Jag kan utveckla mera om det skulle behövas! :-)

Japp - gör så. Vad ska du pilla med??

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <termios.h>
#include <sys/file.h>
#include <unistd.h>

#define TIME 50000

main()
{

  char buffer[20];

  struct termios term;
  int fd, varv, i;
  char rel;

  varv = 0;

  if ( ( fd = open("/dev/cuaa1", O_RDWR )) < 0 ) {
    printf("FEL\n");
    exit(1);
  }

  tcgetattr( fd , &term );
  term.c_cflag = CS8;
  term.c_cflag |= CREAD ;
  term.c_cflag |= CLOCAL ;
  term.c_lflag |= ICANON ;
  cfsetispeed(&term, B19200 );
  cfsetospeed(&term, B19200 );
  tcsetattr( fd , TCSANOW, &term );


  while(1) {
   varv++;
   printf("Nytt varv %d\n", varv);
   usleep(TIME);
   bzero( buffer, sizeof buffer);
   printf("Send: ");
   fgets( buffer, sizeof buffer, stdin);
   write(fd, buffer, sizeof buffer); 
   usleep(TIME);
   }
  close(fd);
}



> 
> 
> MVH Mackan
> 
> 
> _________________________________________________
> BSD Users Sweden -- BUS at stacken.kth.se
> https://lists.stacken.kth.se/mailman/listinfo/bus
> 

-- 
Göran Hasse

----------------------------------------------------------------
Göran Hasse            email: gh at raditex.se     Tel: 08-6949270
Raditex AB             http://www.raditex.se    
Planiavägen 15, 1tr                             Mob: 070-5530148
131 34  NACKA, SWEDEN                         OrgNr: 556240-0589
VAT: SE556240058901
------------------------------------------------------------------



More information about the BUS mailing list