From owner-freebsd-questions@FreeBSD.ORG Fri Sep 9 11:53:55 2005 Return-Path: X-Original-To: freebsd-questions@freebsd.org Delivered-To: freebsd-questions@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 22DB916A41F for ; Fri, 9 Sep 2005 11:53:55 +0000 (GMT) (envelope-from vdemart1@tin.it) Received: from vsmtp4.tin.it (vsmtp4.tin.it [212.216.176.224]) by mx1.FreeBSD.org (Postfix) with ESMTP id B2C1343D46 for ; Fri, 9 Sep 2005 11:53:54 +0000 (GMT) (envelope-from vdemart1@tin.it) Received: from ppp-195-94-156-55.dialup.uni.it (195.94.156.55) by vsmtp4.tin.it (7.2.060.1) (authenticated as vdemart1@tin.it) id 432102C90002DFA9 for freebsd-questions@freebsd.org; Fri, 9 Sep 2005 13:53:49 +0200 From: vittorio To: freebsd-questions@freebsd.org Date: Fri, 9 Sep 2005 13:53:49 +0200 User-Agent: KMail/1.8.1 MIME-Version: 1.0 Content-Disposition: inline Message-Id: <200509091353.49269.vdemart1@tin.it> Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Subject: Fwd: Re: C program to write to the com port - RESOLVED X-BeenThere: freebsd-questions@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: User questions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 09 Sep 2005 11:53:55 -0000 As a C++ absolute beginner I'm trying to compile your testssc.c file with g++ testssc.c -o testssc (under freebsd 5.4, gcc version 3.4.2) But... I only get: SerialPort.C: In function `int main(int, char*)': SerialPort.C:62: error: invalid conversion from `unsigned char*' to `char*' SerialPort.C:62: error: initializing argument 1 of `int snprintf(char*,=20 size_t, const char*, ...)' SerialPort.C:66: error: `err' undeclared (first use this function) SerialPort.C:66: error: (Each undeclared identifier is reported only once f= or=20 each function it appears in.) SerialPort.C:69:3: warning: no newline at end of file Could you please help to straighten things up? Vittorio =2D--------- Messaggio inoltrato ---------- Subject: Re: C program to write to the com port - RESOLVED Date: 02:23, venerd=EC 09 settembre 2005 =46rom: "Paul Hamilton" To: freebsd-questions@freebsd.org =2E.................................................................... =2D------------------------------------------------------------------------= =2D-- =2D------- /* Name: testssc.c * compile with: gcc testssc.c -o testssc * * Your serial cable should be plugged into com port 1. * You only need the pin 3 and pin 5 (DB9) plugged into the controller. * The servo should be plugged into the first servo channel/port. * This test program when run will move the servo from midrange, * to position 01. This is for demonstrational use only. * Tested with FreeBSD 5.4 * Paul Hamilton 8th Aug 2005 */ #include #include #include #include #include /*Originally it was termio.h*/ #include #include // Use serial port 0 (com port 1) static char *opt_comport=3D"/dev/cuaa0"; int main(int argc, char **argv) { int fd; struct termios options; unsigned char buf[4]; // ok, lets try opening the com port printf("Opening Com port: %s\n\n", opt_comport); if((fd =3D open(opt_comport, O_RDWR | O_NOCTTY )) < 0) { printf("Problems opening %s\n", opt_comport); return (-1); } // set the required com port parrameters options.c_cflag &=3D ~CSIZE; /* Mask the character size bits */ options.c_cflag |=3D CS8; /* Select 8 data bits */ options.c_cflag &=3D ~PARENB; // set no parity options.c_cflag &=3D ~CSTOPB; // set 1 stop bit options.c_oflag &=3D ~OPOST; // Raw output tcgetattr(fd, &options); /* * Set the baud rates to 9600... */ cfsetispeed(&options, B9600); cfsetospeed(&options, B9600); /* * Enable the receiver and set local mode... */ options.c_cflag |=3D (CLOCAL | CREAD); /* * Set the new options for the port... */ tcsetattr(fd, TCSANOW, &options); // ok, lets transmit our 3 bytes through com port 1 snprintf(buf,4,"%c%c%c%c",0xff,0x00,0x01,0); printf("buf=3D%x,%x,%x,%x\n", buf[0],buf[1],buf[2],buf[3]); if (write(fd, buf, 3) !=3D 3) err(1, "write"); close(fd); }; =2D------------------------------------------------------------------------= =2D-- =2D------- Cheers, Paul Hamilton PS. I have three books on programming in C winging their way to Australia. I have a lot to learn :-) _______________________________________________ freebsd-questions@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-questions To unsubscribe, send any mail to "freebsd-questions-unsubscribe@freebsd.org" =2D------------------------------------------------------