[olug] OT? C programming question.

Cooper Vertz olug at vertz.info
Wed Sep 1 18:37:37 UTC 2010


Also, it seems to want PERMCH in all caps.

n = write(fd, "PERMCH 1&\r", 9);

On Wed, Sep 1, 2010 at 1:34 PM, Cooper Vertz <olug at vertz.info> wrote:

> I think the receiver is one of these thingies:
> http://www.ftionline.com/products/DVR_Instructions.pdf
>
> *Using the PERMCH Command to dynamically change channels on the WEGENER
> DVR series IRD. NOTE: all four FREQ CMD dip switches must be in the up
> position.*
> ...
> *PERMCH (spacebar) 1 & Enter – dynamically selects SCOLA Channel Seven*
>
> And I think the problem is, you need a literal ampersand in your string.
>
> n = write(fd, "permch 1&\r", 9);
>
> The number of arguments to the write function seems correct,
>
> $ man 2 write
>
> NAME
>        write - write to a file descriptor
>
> SYNOPSIS
>        #include <unistd.h>
>
>        ssize_t write(int fd, const void *buf, size_t count);
>
> DESCRIPTION
>        write() writes up to count bytes to the file referenced by the file
> descriptor fd from the
>        buffer starting at buf.  POSIX requires that a read() which can be
> proved to occur after a
>        write()  has returned returns the new data.  Note that not all file
> systems are POSIX con-
>        forming.
>
> RETURN VALUE
>        On success, the number of bytes written are returned (zero indicates
> nothing was written).
>        On  error,  -1 is returned, and errno is set appropriately.  If
> count is zero and the file
>        descriptor refers to a regular file, 0 may be returned, or an
> error  could  be  detected.
>        For a special file, the results are not portable.
>
>
>
>
>
> On Wed, Sep 1, 2010 at 12:23 PM, Dan Anderson <dan-anderson at cox.net>wrote:
>
>> The "receiver" appears to be something hung off the serial port.
>>
>> I don't understand the problem either though.
>>
>> If one of the parameters (?) has an extra char, I guess I'd filter it
>> (which
>> you should do anyway).
>>
>> I'd also check to make sure that I am sending the correct cr/lf that the
>> "receiver" expects (i.e. \r versus \r\n).  "Enter" means different things.
>>
>> Dan
>>
>> On Wed, Sep 1, 2010 at 11:42 AM, Obi-Wan <obiwan at jedi.com> wrote:
>>
>> > I write C code for a living, but I'm not quite sure what you're asking
>> > from us or what the current problem is.  Can you elaborate?
>> >
>> > Is the "receiver" just a socket connection to some other program that's
>> > expecting ASCII commands?
>> >
>>
>>
>> > > Â Â Â Â Â  fd = open( "/dev/ttyS0", O_RDWR | O_NDELAY);
>> > > Â Â Â Â Â  fd = open( "/dev/ttyS0", O_RDWR | O_NOCTTY | O_NDELAY);
>> > > This is from the user guide of the receiver (using a terminal
>> emulator):
>> > >
>> > > Using the PERMCH Command to dynamically change channels on the
>> receiver.
>> > NOTE: all four FREQ CMD dip switches must be in the up position.
>> > > PERMCH (spacebar) 8 & Enter – dynamically selects Channel 1
>> > > PERMCH (spacebar) 12 & Enter – dynamically selects Channel 2
>> > > PERMCH (spacebar) 14 & Enter – dynamically selects Channel 3
>> > > PERMCH (spacebar) 15 & Enter – dynamically selects Channel 4
>> > > PERMCH (spacebar) 7 & Enter – dynamically selects Channel 5
>> > > PERMCH (spacebar) 3 & Enter – dynamically selects Channel 6
>> > > PERMCH (spacebar) 1 & Enter – dynamically selects Channel 7
>> > > PERMCH (spacebar) 5 & Enter – dynamically selects Channel 8
>> >
>> _______________________________________________
>> OLUG mailing list
>> OLUG at olug.org
>> https://lists.olug.org/mailman/listinfo/olug
>>
>
>



More information about the OLUG mailing list