I am using Raspberry pi demo application.
I want to send VSTRING from CN to MN, say for example, "hello,world\n" from CN to MN. I added the below lines in Objdict.h
To answer your question below: Yes, you can pass a string from CN to MN in isochronous phase.
Also kindly share us the steps you carried out in openCONFIGURATOR project with detailed information on mapping of input_string.
So that we could help you better in creating the openCONFIGURATOR project.
Thanks,
Powerlink-Team-Kalycito
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I have attached my project and objdict.h for CN also .
Note: Previously, i added 16 UInT32 Input and 16 UINT32 output also.
String Portion :
For testing purpose, i added one input_string and one output_string. I didnot add any array for string.
For that, in 00000000_POWERLINK_CiA401_CN.xdd,
I added, one entry in,
<Object index="1600" name="PDO_RxMappParam_00h_AU64" objectType="8">
Since in XDD file, we have three PDORPDOChannels,
I added one entry in both 1601 and 1602 also,
<Object index="1601" name="PDO_RxMappParam_00h_AU64" objectType="8">
<Object index="1602" name="PDO_RxMappParam_00h_AU64" objectType="8">
Then in, Manufacturer Specific Profile Area (0x2000 - 0x5FFF)
We reproduced the error faced by you. Kindly add default value for VString object to resolve this issue.
The admissible values of data of type can range from 20 to 7E.
Thanks,
Powerlink-Team-Kalycito
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Thanks for the suggestion. I added the DefaultValue in VString object and now i am able to map the value in RPDO and TPDO. But i get error while building the project.
Error is : [2018-07-11 17:24:51][ERROR] Dynamic channel for datatype: "VISIBLE_STRING" and direction: "Rx" not found on the Managing Node.
I attached the project and the screen shot in attachment.
Navigate to, New_Attachments.zip --> Error-WhileMapping -->String, for the openCONFIGURATOR project
Questions:
1) Kindly check the MN's xdd file in the project attached. Do i need to add anything in that file for MN to give String Support??
2) If so, what should be added in Objdict.h file for MN?
I just changed datatype to '0009' to make it as V_STRING.
This time project is build successfully, but the XAP_H file is empty.
So for testing, I added one AnalogInput in the RPDO and one AnalogOutput in TPDO. when i build the project, Eclipse simply crashed.
Navigate to, New_Attachments.zip --> CrashingProject -->StringTest , for the whole openCONFIGURATOR project.
Question
1) XAP_H file is empty. There should be a name like,
unsigned CN1_Uint8_Array_In_Var_1:8; inside the XAP_H file right?. Through this kind of variable only can pass the Values to the MN right?
I think i have addressed the steps i followed in Detail. Download the attachemnt and it will be easy to create such errors.
For your question regarding the "[ERROR] Dynamic channel....", The Dynamic channel support should be enabled in MN. The approach you have taken is correct.
We were also able to reproduce the issue of eclipse crashing while mapping. To debug this further, can you please share the log file of openCONFIGURATOR?. The log file will be present in the path eclipse-workspace.metadata.plugins\org.epsg.openconfigurator.
Thanks,
Powerlnk-Team-Kalycito
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I am attaching here the Project and OpenCONFIGURATOR.log in a zip file.
In the log file, I have [2018-07-24 17:42:57][FATAL] Mapping-Object 0xA680/0x1 on node "240": Enabled mapping entry does not have a valid object value. [2018-07-24 17:42:57][FATAL] Mapping-Object 0xA200/0x1 on node "240": Enabled mapping entry does not have a valid object value.
I think it is throwing error for MN.XDD file.
Question
1) Kindly tell us what lines to add in MN XDD File.
2) Respective changes to the Objdict.h also.
3) Why Xap.h file is empty for a string after building?
In the attached project, Latest edited MN file can be found.
It seems like the support for VSTRING object is not available in openCONFIGURATOR. This is the reason for empty xap.h file. When the datatype VSTRING is mapped along with other datatypes, the eclipse crashes.
If your requirement is to send the data (other than VString) to MN or viceversa, You can use the available objects (of supported datatypes in dynamic channel) to send and receive the data.
Or with your successfully built openCONFIGURATOR project (one with empty xap.h) manually edit the xap.h file to send/receive the characters.
Thanks,
Powerlink-Team-Kalycito
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hello,
I have been trying to do the same as Nandhu is doing, I found this thread which is very helpful. I d like to follow-up on this.
Nandhu: did you try the solution suggested by Powerlink-team? did it work?
Thanks.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Can you tell me exactly what you want to send. If your payload is fixed you can send it in cyclic phase itself. You dont have to use V_STRING or O_STRING.
Thanks
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
When you use V_STRING, do you have the problem Value to write is too long or too short when you use oplk_linkProcessImageObject to link object with DO ? How do you configure to send a string
Thanks
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hi
I am using Raspberry pi demo application.
I want to send VSTRING from CN to MN, say for example, "hello,world\n" from CN to MN. I added the below lines in Objdict.h
OBD_BEGIN_INDEX_RAM(0x2200, 0x02, FALSE)
OBD_SUBINDEX_RAM_VAR(0x2200, 0x00, kObdTypeUInt8, kObdAccConst, tObdUnsigned8, NumberOfEntries, 0x01)
OBD_SUBINDEX_RAM_VSTRING(0x2200, 0x01, kObdAccR, input_string, 32)
OBD_END_INDEX(0x2200)
In XDD of CN, i added the following lines,
<Object index="2200" name="input_string_one" objectType="8" dataType="0009">
<SubObject subIndex="00" name="NumberOfEntries" objectType="7" dataType="0005" accessType="const" defaultValue="8" PDOmapping="no"/>
<SubObject subIndex="01" name="input_string" objectType="7" dataType="0009" accessType="ro" PDOmapping="TPDO"/>
</Object>
when i import this project in openCONFIGURATOR , project created successfully. But i cannot map "input_string" from open configurator.
It says, "[ERROR] [Project_Name] (Sub)Index 0x2200/0x1 on node "1" cannot be mapped. Data size is not defined or zero."
I already followed,
https://sourceforge.net/p/openpowerlink/discussion/opendiscussion/thread/1f9c0f4a/?limit=25#dbb6
to add the UINT32 support, which runs successfully.
I dont know where i am missing.
Questions.
1) Can i pass string from CN to MN in isochronous phase.
Please help us on this.
Thanks & Regards,
Nandhu
Last edit: Nandhu 2018-07-09
Hi Nandhu,
To answer your question below: Yes, you can pass a string from CN to MN in isochronous phase.
Also kindly share us the steps you carried out in openCONFIGURATOR project with detailed information on mapping of input_string.
So that we could help you better in creating the openCONFIGURATOR project.
Thanks,
Powerlink-Team-Kalycito
Hi
Thanks for the response.
I have attached my project and objdict.h for CN also .
Note: Previously, i added 16 UInT32 Input and 16 UINT32 output also.
String Portion :
For testing purpose, i added one input_string and one output_string. I didnot add any array for string.
For that, in 00000000_POWERLINK_CiA401_CN.xdd,
I added, one entry in,
<Object index="1600" name="PDO_RxMappParam_00h_AU64" objectType="8">
Since in XDD file, we have three PDORPDOChannels,
I added one entry in both 1601 and 1602 also,
<Object index="1601" name="PDO_RxMappParam_00h_AU64" objectType="8">
<Object index="1602" name="PDO_RxMappParam_00h_AU64" objectType="8">
Then in, Manufacturer Specific Profile Area (0x2000 - 0x5FFF)
I added,
For Input,
<Object index="2200" name="input_string" objectType="7" dataType="0009" accessType="ro" PDOmapping="TPDO" defaultValue=" "/>
For Output,
<Object index="3200" name="output_string" objectType="7" dataType="0009" accessType="rw" PDOmapping="RPDO" defaultValue="1.0"/>
Since this is just a string, i added only one entry.
I added like below also, same error,
<Object index="3200" name="output_string_one" objectType="8" dataType="0009">
<SubObject subIndex="00" name="NumberOfEntries" objectType="7" dataType="0005" accessType="const" defaultValue="8" PDOmapping="no"/>
<SubObject subIndex="01" name="output_string" objectType="7" dataType="0009" accessType="rw" PDOmapping="RPDO"/>
</Object>
Error reporting in Eclipse openCONFIGURATOR Plugin is ,
[2018-07-10 13:10:17] [ERROR] [String_Working] (Sub)Index 0x2200/0x0 on node "1" cannot be mapped. Data size is not defined or zero.
Please check the screenshot in attachment.zip also.
Kindly download attachments.zip and open respective files and go through. I kept MN and CN XDD and openCONFIGURATOR projects in seperate folder.
Thanks & Regards,
Nandhu
Last edit: Nandhu 2018-07-10
Hi Nandhu,
We reproduced the error faced by you. Kindly add default value for VString object to resolve this issue.
The admissible values of data of type can range from 20 to 7E.
Thanks,
Powerlink-Team-Kalycito
Hi Powerlink-Team-Kalycito,
Thanks for the suggestion. I added the DefaultValue in VString object and now i am able to map the value in RPDO and TPDO. But i get error while building the project.
Error is : [2018-07-11 17:24:51] [ERROR] Dynamic channel for datatype: "VISIBLE_STRING" and direction: "Rx" not found on the Managing Node.
I attached the project and the screen shot in attachment.
Navigate to, New_Attachments.zip --> Error-WhileMapping -->String, for the openCONFIGURATOR project
Questions:
1) Kindly check the MN's xdd file in the project attached. Do i need to add anything in that file for MN to give String Support??
2) If so, what should be added in Objdict.h file for MN?
I followed one more link in the forum, which is ,
https://sourceforge.net/p/openpowerlink/discussion/newbie/thread/10a06574/?limit=25#8ded/8308
As per the suggestion mentioned in this link,
I added in MN.XDD file,
<dynamicChannel accessType="readOnly" addressOffset="0000" bitAlignment="0" dataType="0009" maxNumber="1016" startIndex="A900" endIndex="A903"/>
<dynamicChannel accessType="readWriteOutput" addressOffset="0000" bitAlignment="0" dataType="0009" maxNumber="1016" startIndex="A910" endIndex="A913"/>
I just changed datatype to '0009' to make it as V_STRING.
This time project is build successfully, but the XAP_H file is empty.
So for testing, I added one AnalogInput in the RPDO and one AnalogOutput in TPDO. when i build the project, Eclipse simply crashed.
Navigate to, New_Attachments.zip --> CrashingProject -->StringTest , for the whole openCONFIGURATOR project.
Question
1) XAP_H file is empty. There should be a name like,
unsigned CN1_Uint8_Array_In_Var_1:8; inside the XAP_H file right?. Through this kind of variable only can pass the Values to the MN right?
I think i have addressed the steps i followed in Detail. Download the attachemnt and it will be easy to create such errors.
Thanks & Regards,
Nandhu
Last edit: Nandhu 2018-07-11
Hi Powerlink-Team-Kalycito,
We are still waiting for the response. Can you please guide us on this.
Thanks & Regards,
Nandhu
Hi Nandhu,
For your question regarding the "[ERROR] Dynamic channel....", The Dynamic channel support should be enabled in MN. The approach you have taken is correct.
We were also able to reproduce the issue of eclipse crashing while mapping. To debug this further, can you please share the log file of openCONFIGURATOR?. The log file will be present in the path eclipse-workspace.metadata.plugins\org.epsg.openconfigurator.
Thanks,
Powerlnk-Team-Kalycito
Hi Powerlnk-Team-Kalycito,
Thanks for the response.
I am attaching here the Project and OpenCONFIGURATOR.log in a zip file.
In the log file, I have
[2018-07-24 17:42:57] [FATAL] Mapping-Object 0xA680/0x1 on node "240": Enabled mapping entry does not have a valid object value.
[2018-07-24 17:42:57] [FATAL] Mapping-Object 0xA200/0x1 on node "240": Enabled mapping entry does not have a valid object value.
I think it is throwing error for MN.XDD file.
Question
1) Kindly tell us what lines to add in MN XDD File.
2) Respective changes to the Objdict.h also.
3) Why Xap.h file is empty for a string after building?
In the attached project, Latest edited MN file can be found.
Thanks & Regards,
Nandhu
Last edit: Nandhu 2018-07-25
Hi Powerlnk-Team-Kalycito,
Can we get any update.
Thanks & Regards,
Nandhu
Hi User,
It seems like the support for VSTRING object is not available in openCONFIGURATOR. This is the reason for empty xap.h file. When the datatype VSTRING is mapped along with other datatypes, the eclipse crashes.
If your requirement is to send the data (other than VString) to MN or viceversa, You can use the available objects (of supported datatypes in dynamic channel) to send and receive the data.
Or with your successfully built openCONFIGURATOR project (one with empty xap.h) manually edit the xap.h file to send/receive the characters.
Thanks,
Powerlink-Team-Kalycito
Hello,
I have been trying to do the same as Nandhu is doing, I found this thread which is very helpful. I d like to follow-up on this.
Nandhu: did you try the solution suggested by Powerlink-team? did it work?
Thanks.
Hi Ahmed Elsayed ,
Can you tell me exactly what you want to send. If your payload is fixed you can send it in cyclic phase itself. You dont have to use V_STRING or O_STRING.
Thanks
Hi Nandhu,
When you use V_STRING, do you have the problem Value to write is too long or too short when you use oplk_linkProcessImageObject to link object with DO ? How do you configure to send a string
Thanks