Charmed Quark Systems, Ltd. - Support Forums and Community

Full Version: Official RIVA thread
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
Dean, I'm going to start asking questions about the XML Gateway. I didn't immediately see which thread to use. Can you tell me where to post? Thanks.
It's probably fine to ask them here. BTW, here is a link to a post with a Zip of the communications part of Mark's old .Net Viewer, which was based on the XML GW, so it might save you a bit of time, assuming that C# code means anything to you:

http://www.charmedquark.com/vb_forum/sho...stcount=19
OK, three questions so far.

Is it possible to find out what type of user I have logged in as? I see that some things (e.g. editing an event) are possible only as a power user, and it would be nice to disable the functionality if editing is not available. I seem to remember that there was a way to know this in RIVA, but I don't see anything in the XMLGW spec.

There's one command to get the device list, and another to get the status of a particular device. When I imagine the user interface, it seems like the list of devices ought to be accompanied by the status of each, but this would require calling the status call for each device. I wanted to make sure that this is not an expensive call to make, so I'm not going to be bogging down the system by calling it on each device in turn.

I see that macros have parameters. Is there any way to know how many parameters there are for a macro, or what type they are supposed to be? Or when prompting to run a macro, should I just display some fixed number of free text boxes, and assume that the user knows what to do? If so, how many parameters is a good upper limit to display?
1. I don't think you can currently know the type of user, but that could be added to the return info upon successful login easily enough I think.

2. Typically you don't worry so much about the state of the device, but just fields. If the device is not connected, the fields will be in error state. Since everything is basically driven by fields, this is usually fine. And of course some fields can be in error state even if their associated device is connected.

3. There's no way for you to know, and the same applies at my level as well. At the action editor level they are passed in a quoted comma list, so it's open ended. They would just have to have documentation on the macro being invoked so that they know what to pass.
More questions. I tried to send a CQCGW:SetSchEv message, but got back an exception saying "CQCGW:SetSchEv is not a known XML Gateway message". It's possible that I'm doing something wrong, but is it possible that either that's not really the name of the message, or that I am not a power user, and that's the error returned when a non-power user attempts to edit an event?

Second, is it really true that Riva allows 8 environment variables, while the XML Gateway allows 9? Or did I read something wrong?
SetSchEv is a legitimate message. What version of CQC are you on? Some of those were added in the latter 4.0 betas.

Both should allow for 9, AFAIK. Does the RIVA docs say only 8 somewhere or something?
I believe the server was upgraded, and I still see the problem. The guts of what I'm sending are:

<CQCGW:SetSchEv CQCGW:EvId='15647A14E540A9E3-73A35E1931E2FDBC' CQCGWBig GrinHM='0 10 0' CQCGW:Mask='0011111'/>

and I get back:

<CQCGW:ExceptionReply CQCGW:ErrClass="EClass_Protocol" CQCGW:ErrSev="ESev_Failed" CQCGW:File="CQCGWSrv_WorkerThread.cpp" CQCGW:Line="602" CQCGWTonguerocess="CQCGWSrv" CQCGW:Thread="CQCGWSrvWorkerThread3">
CQCGW:SetSchEv is not a known XML Gateway message
</CQCGW:ExceptionReply>

I am going to try the Set messages for the other event types, to see what happens.
I have been playing around with running macros. When I send an empty macro parameter (e.g. <CQCGW:MacroParam></CQCGW:MacroParam>, or whatever the right element type is), I get an exception that I don't get when the parameter isn't there. Is there a way to send an empty parameter, or does the macro capability not support that? If I had a two-parameter macro, and I only cared about the second parameter, what would I send as a placeholder for the first parameter? Or does that question not even make sense? I'm not that familiar with how macros work.
Well if it's like calling macros from the IV, the parameters are a space delimited string, so you have to throw some junk string in there as a placeholder.
wuench Wrote:Well if it's like calling macros from the IV, the parameters are a space delimited string, so you have to throw some junk string in there as a placeholder.
I thought they were comma delimited?
Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39