1.) Configuration Studio 2.7.10319
2.) Display - PV350/PV380
I am trying to understand the relationship between the Identifier (Configuration General Settings page) and the Configuration.Identifier variable (System App application). I notice that the Configuration.Identifier value changes if I change the Identifier (Configuration General Settings page) and perform a Create Package. What I can’t figure out is how the Configuration.Identifier variable’s value is derived from the Identifier.
I am in the process of devising a means to easily identify software configurations/versions of display units deployed at customer locations for warranty, field updates, etc. through a 1939 Software ID request. If I understood how the Configuration.Identifier variable is generated, it could be used to populate the response to the request.
Thanks,
Dan
Configuration Identifier/Configuration.Identifier Var
- dmsellers
- Posts: 42
- Joined: Mon Aug 12, 2013 7:45 pm
- jpratt
- Enovation Controls Development
- Posts: 222
- Joined: Mon Jun 21, 2010 11:18 am
Re: Configuration Identifier/Configuration.Identifier Var
The Configuration Identifier String is a unique name you assign the configuration. This should be a version independent value. We use it as a "Product/Config Name" value in our internal configurations. When this value changes, we generate a 32bit hash of the name and update the Configuration.Idenitifier variable to this number. This allows you to verify that this is the same configuration INDEPENDENT of version. Our new Remote Diagnostics tools and "Saves Across Upgrades" variable settings rely on this variable.
The other value that is used is the Configuration Title which you enter on the main tab above Identifier. This string is stored in the reserved string Version.ConfigTool.Title reserved string intended to hold YOUR Title/Version of the configuration. As its a reserved string you can also display this in your configuration information screens to allow customers to report this value back. This is the value our configuration group uses for warranty/version tracking. The system does NOT update this value for you which allows you to use this value (in combination with Configuration Identifier) to uniquely identify a configuration.
Hope this helps
The other value that is used is the Configuration Title which you enter on the main tab above Identifier. This string is stored in the reserved string Version.ConfigTool.Title reserved string intended to hold YOUR Title/Version of the configuration. As its a reserved string you can also display this in your configuration information screens to allow customers to report this value back. This is the value our configuration group uses for warranty/version tracking. The system does NOT update this value for you which allows you to use this value (in combination with Configuration Identifier) to uniquely identify a configuration.
Hope this helps
Jake Pratt
Software Development Manager
Software Development Manager
- dmsellers
- Posts: 42
- Joined: Mon Aug 12, 2013 7:45 pm
Re: Configuration Identifier/Configuration.Identifier Var
Thanks Jake, that's helpful. How do I get access to the Version.ConfigTool.Title reserved string to display in a text gauge or send out as part of a CAN message? When I drop in a text gauge on a page, I can't seem to see any reserved strings in the Variable/Parameter list to assign to the text gauge.
Thanks
Thanks
- jpratt
- Enovation Controls Development
- Posts: 222
- Joined: Mon Jun 21, 2010 11:18 am
Re: Configuration Identifier/Configuration.Identifier Var
Drop a text widget on the screen and click the "Show Advanced" The Override string property will let you select the reserved string and will automatically show it on screen. This is the best practice for showing any string on the screen as you can update the string once in scripting.
To send it out via CAN is a little harder. We don't have a simple solution to this but it can be done. The most common method would be to create a free formed can message that describes the message to send (fixed length right now unfortunately) then use scripting to load the free form message variable data with the string and use the free form send action to send it.
Another method and the preferred method is coming in PowerVision 2.7.1. With this version you will be able to send a can message directly from scripting. Here is some code from our Unit Test script config to show you what it will look like. With this method, you would simple read the string using GetCultureString() and then write the bytes to the message. Also note that the new CANMessageBuffer has a write string so you can use that as well.
Here is the Sample code. This will work in 2.7.1 when released soon.
CANMessageInfo info;
info.MessageType = CANMessageInfoType.MultiPacket;
info.DestinationAddress = 0xFF;
info.RtsCtsMaxPackets = 0xFF;
CANMessageBuffer buffer;
buffer.CanID = 0x12345678;
buffer.Size = 8;
buffer.WriteInt8(0, 0xFF);
buffer.WriteInt8(1, 1);
buffer.WriteInt8(2, 2);
buffer.WriteInt8(3, 3);
int port = 0;
SendCANMessage(0, buffer, info);
To send it out via CAN is a little harder. We don't have a simple solution to this but it can be done. The most common method would be to create a free formed can message that describes the message to send (fixed length right now unfortunately) then use scripting to load the free form message variable data with the string and use the free form send action to send it.
Another method and the preferred method is coming in PowerVision 2.7.1. With this version you will be able to send a can message directly from scripting. Here is some code from our Unit Test script config to show you what it will look like. With this method, you would simple read the string using GetCultureString() and then write the bytes to the message. Also note that the new CANMessageBuffer has a write string so you can use that as well.
Here is the Sample code. This will work in 2.7.1 when released soon.
CANMessageInfo info;
info.MessageType = CANMessageInfoType.MultiPacket;
info.DestinationAddress = 0xFF;
info.RtsCtsMaxPackets = 0xFF;
CANMessageBuffer buffer;
buffer.CanID = 0x12345678;
buffer.Size = 8;
buffer.WriteInt8(0, 0xFF);
buffer.WriteInt8(1, 1);
buffer.WriteInt8(2, 2);
buffer.WriteInt8(3, 3);
int port = 0;
SendCANMessage(0, buffer, info);
Jake Pratt
Software Development Manager
Software Development Manager
- dmsellers
- Posts: 42
- Joined: Mon Aug 12, 2013 7:45 pm
Re: Configuration Identifier/Configuration.Identifier Var
Thanks Jake. With the PV350 I don't have scripting capability, but I think I can get what I want through programming.
Dan
Dan