PLCBUS 1141 API question

Forum about PLCBUS devices & software.

Moderator: Digit

PLCBUS 1141 API question

Postby RDNZL » Tue Aug 17, 2010 9:58 am

About to release my PLCBUS code, but have some lose ends that I want to fix/understand.

If I query the interface for noise and signal levels, I only get 00 00 back.
Anyone knows why?

I sent: 1A REPORT SIGNAL STRENGTH* Report the Signal Strength.
2010/08/17 10:34:16 [PLCBUS] > 02 05 FA 00 1A 00 00 03
2010/08/17 10:34:17 [PLCBUS] > 02 05 FA 00 1A 00 00 03
I get 00 00
2010/08/17 10:34:17 [PLCBUS] < 02 06 FA 00 1A 00 00 1E 03

I sent: 1B REPORT NOISE STRENGTH* Report the Noise Strength.
2010/08/17 10:34:31 [PLCBUS] > 02 05 FA 00 1B 00 00 03
2010/08/17 10:34:31 [PLCBUS] > 02 05 FA 00 1B 00 00 03
I get 00 00
2010/08/17 10:34:32 [PLCBUS] < 02 06 FA 00 1B 00 00 1E 03

Status poll works ok.
I sent status poll: 1D GET ONLY ON ID PULSE
2010/08/17 10:34:36 [PLCBUS] > 02 05 FA 00 1D 00 00 03
2010/08/17 10:34:36 [PLCBUS] > 02 05 FA 00 1D 00 00 03
I get: correct answer (A3 is ON)
2010/08/17 10:34:37 [PLCBUS] < 02 06 FA 00 1D 00 00 1E 03
2010/08/17 10:34:37 [PLCBUS] < 02 06 FA 00 1D 00 04 40 03 Addr: A01 Cmd: GET_ONLY_ON_ID_PULSE Data1: 00 Data2: 04 GET ONLY ON ID PULSE UNITS ON: 00000000 00000100

Same if I set ACK (3A / 3B)

Or should I use these instead and query all device codes separately?
18 GET SIGNAL STRENGTH # Check the Signal Strength.
19 GET NOISE STRENGTH # Check the Noise Strength.
Regards, Ron.
http://domotiga.nl - open source home automation software for Linux.
User avatar
RDNZL
Forum Moderator
Forum Moderator
 
Posts: 970
Joined: September 2006
Location: Dordrecht, The Netherlands

Re: PLCBUS 1141 API question

Postby Digit » Tue Aug 17, 2010 10:29 am

Hi Ron,

You have to send the GET_SIGNAL to each module, here's how i construct the data part of the packet to send it to each module in a loop (which i left out here):

Code: Select all
Addr := KnownDevice[SigNoiseReqIndex];

// get house and unit code out of address
HC:=ord(Addr[3]);
val(copy(Addr,4,2),UC, ErrCode);

Log('Queueing GET_SIGNAL for '+Addr);
Data:=chr( (HC-ord('A')) shl 4 + (UC-1) )+chr(PLCBUS_GET_SIGNAL or PLCBUS_ACK_BIT)+chr(0)+chr(0);
AddToCommandQueue(Data);

As you can see i also use the ACK bit.
That should give better results.
User avatar
Digit
Global Moderator
Global Moderator
 
Posts: 3388
Joined: March 2006
Location: Netherlands


Return to PLCBUS Forum

Who is online

Users browsing this forum: No registered users and 1 guest