Hey there,

  I got a new UPS (CyberPower PR1500LCDRTXL2Ua) and found the serial drivers 
don't quite work...

So I decided to jump in and make changes to the driver that would hopefully 
make it happier.

I have it working (I really only changed powerp-txt.c) but still have a couple 
questions... Charles said I should mention them here to talk to anyone interest 
but specifically Arjen (one of the original authors of the driver)

Soooo...

Here I am. ;)


Where should we start?

Essentially, I rewrote powpan_status so it better tolerates strings of 
different lengths (although I only have the 1 UPS right now, so I can't test 
against another and different string lengths)

I had to make the serial read much longer so it grabs 55bytes instead of the 
original short list.

  9.843588     read: (55 bytes) => 23 49 31 31 38 2e 30 4f 31 31 38 2e 30 4c 30 
31 37 42
   9.843663      31 30 30 54 30 32 35 48 30 36 30 2e 30 46 30 36 30 2e 30 52 30 
35 31 51 30
   9.843695      30 32 53 90 84 c0 88 80 57 00 81 0d

compared to the original string support in the file, there's now 2 fields of 
binary data (in ASCII Protocol? seriously? smh)

and the S field on this UPS has 4 bytes instead of just 2.

(not that it matters I guess... but now it makes me wonder what all the extra 
information is)

(I also guess someone has tried reaching out to CyberPower for docs and been 
turned down?)


Anyway -- in rewriting this, the only part I have left to do to where I'm happy 
is setting the timeout.

Instead of asking for N number of chars and then timing out after a long time, 
I'd like to ask it for a string (up to the 0x0D).

I haven't written that in yet, but will if someone says there's another way -- 
or I have to do it that way....

so that an incomplete string after time causes a timeout but a string that 
comes in reasonably soon will be collected -- but not using a fixed number 
(since it seems these UPSs now have variability in string length between 
models) and then just parse the string.

The parsing part works. I just need to alter the collection part so the 
timeouts work differently.

Any advice from anyone?


Thanks,

 -Ben

_______________________________________________
Nut-upsdev mailing list
[email protected]
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/nut-upsdev

Reply via email to