GithubHelp home page GithubHelp logo

canopennode / canopeneditor Goto Github PK

View Code? Open in Web Editor NEW

This project forked from robincornelius/libedssharp

118.0 118.0 57.0 6.5 MB

CANopen Object Dictionary Editor

License: GNU General Public License v3.0

C# 99.50% CSS 0.21% NSIS 0.22% Makefile 0.02% HTML 0.05%
canopen editor eds iot xdd

canopeneditor's People

Contributors

bartimaeus- avatar barzello avatar canopennode avatar cfr-mir avatar dependabot[bot] avatar dylanrobertbennett avatar gotocoffee1 avatar heliochronix avatar henrikbrixandersen avatar juprgn avatar kekiefer avatar kwontae-young avatar martinwag avatar nimrof avatar rcolatobe avatar regelink avatar rgruening avatar robincornelius avatar simon-fuchs-inmach avatar stormoli avatar trojanobelix avatar wilkinsw avatar zhanglongqi avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

canopeneditor's Issues

$NODEID should not be case sensitive

$NODEID should not be case sensitive
Convert to uppercase on loading or do not create warning

EDS Checker is fine with "$NodeID"
DS306 does not prohibit mixed case explicite:
For entries of one of the integer types it is allowed to use a formula. This gives the chance to describe values, that depend on other values. For example, the COB-ID of the default PDOs depend on the Node-ID of the device.
The syntax of the formula is given by the following EBNF description:
IntEntryValue = $NODEID { Ó+Ó number }
For concrete devices, $NODEID will be replaced by the actual Node-ID of the device. The $NODEID must appear at the beginning of the expression. Otherwise the line is interpreted as without a formula. Actually it is only possible to use an offset to this NodeID in the formula. More complex expressions are not allowed.

Compile errors from OD.h and OD.c due to PDO modification

Hi,

I've been trying to re-map some PDOs using CANopenEdtior, but for some reason, the generated OD.h and OD.c seem to fail when trying to compile with the rest of my source code. After some trial and error, I figured that this occurs only after editing a PDO. The error log is shown in the image. Any advice or assistance on resolving this issue would be greatly appreciated!

Screenshot 2021-07-12 11:23:22

Evolving the library + broken slack?

Hi @CANopenNode ,

I was wondering how active this library is and if there is still some discussion going on. How would you see the evolution of the library

  • making it a nuget package to be consumed https://github.com/Dotnet-Boxed/Templates/blob/main/Docs/NuGet.md
  • make the UI web based for instance with Blazor Wasm so that no installation specific OS anyone get run it in the browser of choice even offline 😃
  • Making use of t4, source generators to allow generating other Artefacts e.g. c#

Cheers

System.ArgumentException with grid columns

I started getting a strange runtime error after adding a new object. The error I get is this:

System.ArgumentException: Grid has only 67 columns, you tried to insert cell into position 2;67.You should probably call Redim on grid to increase it's column size
   at SourceGrid.Grid.DirectSetCell(Position position, ICell cell)
   at SourceGrid.Grid.InsertCell(Int32 row, Int32 col, ICell p_cell)
   at SourceGrid.Grid.set_Item(Position position, ICell value)
   at SourceGrid.Grid.set_Item(Int32 row, Int32 col, ICell value)
   at ODEditor.DevicePDOView2.UpdatePDOinfo(Boolean updatechoices) in Z:\CANopen\CANopenEditor\EDSEditorGUI\DevicePDOView2.cs:line 462
   at ODEditor.DeviceView.dispatch_updatePDOinfo() in Z:\CANopen\CANopenEditor\EDSEditorGUI\DeviceView.cs:line 80
   at ODEditor.MyTabUserControl.doUpdatePDOs() in Z:\CANopen\CANopenEditor\EDSEditorGUI\MyTabUserControl.cs:line 44
   at ODEditor.DeviceODView.PopulateObjectLists(EDSsharp eds_target) in Z:\CANopen\CANopenEditor\EDSEditorGUI\DeviceODView.cs:line 162
   at ODEditor.DeviceView.dispatch_updateOD() in Z:\CANopen\CANopenEditor\EDSEditorGUI\DeviceView.cs:line 92
   at ODEditor.ODEditor_MainForm.openXDDfile(String path) in Z:\CANopen\CANopenEditor\EDSEditorGUI\Form1.cs:line 345
System.ArgumentException: Grid has only 67 columns, you tried to insert cell into position 2;67.You should probably call Redim on grid to increase it's column size
   at SourceGrid.Grid.DirectSetCell(Position position, ICell cell)
   at SourceGrid.Grid.InsertCell(Int32 row, Int32 col, ICell p_cell)
   at SourceGrid.Grid.set_Item(Position position, ICell value)
   at SourceGrid.Grid.set_Item(Int32 row, Int32 col, ICell value)
   at ODEditor.DevicePDOView2.UpdatePDOinfo(Boolean updatechoices) in Z:\CANopen\CANopenEditor\EDSEditorGUI\DevicePDOView2.cs:line 462
   at ODEditor.DeviceView.dispatch_updatePDOinfo() in Z:\CANopen\CANopenEditor\EDSEditorGUI\DeviceView.cs:line 80
   at ODEditor.MyTabUserControl.doUpdatePDOs() in Z:\CANopen\CANopenEditor\EDSEditorGUI\MyTabUserControl.cs:line 44
   at ODEditor.DeviceODView.PopulateObjectLists(EDSsharp eds_target) in Z:\CANopen\CANopenEditor\EDSEditorGUI\DeviceODView.cs:line 162
   at ODEditor.DeviceView.dispatch_updateOD() in Z:\CANopen\CANopenEditor\EDSEditorGUI\DeviceView.cs:line 92
   at ODEditor.ODEditor_MainForm.openXDDfile(String path) in Z:\CANopen\CANopenEditor\EDSEditorGUI\Form1.cs:line 345

The issue can be duplicated when opening this file: ds402_ort-bldc.zip

Unknown Warning while saving file or exporting Node

I have compiled the latest version. Now when saving or exporting a node, a window comes up with a warning that my PDOs are not mappable.
The same file was saveable by an older version of the Editor.

grafik

The OD exported by nevertheless is compilerable and seems to work.

The only difference I see at first sight is that in OD.h four entries are missing. but I don't know their purpose.

New OD.h:
grafik

Old OD.h:
grafik

Please don't be surprised, the pictures are from different devices. If you compare the new OD.h and the old OD.h of the same device, exactly the 4 marked entries are different.

Opening profile files

Hello,

I am using CanopenEditor on windows 11. I have downloaded files from ABB using this link. I have only tried files related to the ACS880 drive.

The EDS files for the FCAN-01 and ACS880 open in the editor no problem.

The .xml files for FECA-01 adapter for the ACS880 drive, give the following error:

System.InvalidOperationException: There is an error in XML document (2, 2). ---> System.InvalidOperationException: was not expected.
at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderDevice.Read24_device()

The FENA-21 .eds files for the acs880 drive give the following error:

System.Collections.Generic.KeyNotFoundException: The given key was not present in the dictionary.

Hope you all can fix this issue or let me know what if there is something I missed. I have attached a file for each adapter I mention above.

Thanks!

ACS880_adapterFiles.zip

Adding new TX PDO causes exception!

Whenever I press the Add new PDO in the TX PDO Mapping tab I get an Unhandled exception!
This error occurs with any file, be it a new EMPTY project or when editing one of the example ones (demoDevice from CANopenNode or the DS301_profile).

image

I'm using the latest Windows build

Here is the details from the exception:

See the end of this message for details on invoking 
just-in-time (JIT) debugging instead of this dialog box.

************** Exception Text **************
System.ArgumentNullException: Value cannot be null.
Parameter name: value
   at System.Windows.Forms.ComboBox.ObjectCollection.IndexOf(Object value)
   at ODEditor.DeviceODView.PopulateObjectLists(EDSsharp eds_target) in Z:\CANopen\CANopenEditor\EDSEditorGUI\DeviceODView.cs:line 197
   at ODEditor.DeviceView.dispatch_updateOD() in Z:\CANopen\CANopenEditor\EDSEditorGUI\DeviceView.cs:line 92
   at ODEditor.MyTabUserControl.doUpdateOD() in Z:\CANopen\CANopenEditor\EDSEditorGUI\MyTabUserControl.cs:line 62
   at ODEditor.DevicePDOView2.addnewPDO() in Z:\CANopen\CANopenEditor\EDSEditorGUI\DevicePDOView2.cs:line 719
   at ODEditor.DevicePDOView2.button_addPDO_Click(Object sender, EventArgs e) in Z:\CANopen\CANopenEditor\EDSEditorGUI\DevicePDOView2.cs:line 709
   at System.Windows.Forms.Control.OnClick(EventArgs e)
   at System.Windows.Forms.Button.OnClick(EventArgs e)
   at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
   at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.ButtonBase.WndProc(Message& m)
   at System.Windows.Forms.Button.WndProc(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


************** Loaded Assemblies **************
mscorlib
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.4420.0 built by: NET48REL1LAST_C
    CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll
----------------------------------------
EDSEditor
    Assembly Version: 1.0.0.0
    Win32 Version: 1.0.0.0
    CodeBase: file:///C:/Users/WDavi/Desktop/Repos/CANopenEditor-build/CANopenEditor-build/EDSEditor.exe
----------------------------------------
System.Windows.Forms
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.4400.0 built by: NET48REL1LAST_C
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.4360.0 built by: NET48REL1LAST_C
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Drawing
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.4390.0 built by: NET48REL1LAST_C
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
libEDSsharp
    Assembly Version: 1.0.0.0
    Win32 Version: 1.0.0.0
    CodeBase: file:///C:/Users/WDavi/Desktop/Repos/CANopenEditor-build/CANopenEditor-build/libEDSsharp.DLL
----------------------------------------
System.Configuration
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.4190.0 built by: NET48REL1LAST_B
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
----------------------------------------
System.Core
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.4390.0 built by: NET48REL1LAST_C
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll
----------------------------------------
System.Xml
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.4084.0 built by: NET48REL1
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------
SourceGrid
    Assembly Version: 4.40.4580.29115
    Win32 Version: 4.40.4580.29115
    CodeBase: file:///C:/Users/WDavi/Desktop/Repos/CANopenEditor-build/CANopenEditor-build/SourceGrid.DLL
----------------------------------------

************** JIT Debugging **************
To enable just-in-time (JIT) debugging, the .config file for this
application or computer (machine.config) must have the
jitDebugging value set in the system.windows.forms section.
The application must also be compiled with debugging
enabled.

For example:

<configuration>
    <system.windows.forms jitDebugging="true" />
</configuration>

When JIT debugging is enabled, any unhandled exception
will be sent to the JIT debugger registered on the computer
rather than be handled by this dialog box.

TX PDO Mapping destroys RPDO communication parameter

Hi,

I have some strange issues with the Object Dictionary Editor v4.0-51. When I insert a new DS301_profile and
then go to the TX PDO Mapping section and place for example the rror register on index 1800 and click on save, the rpdo communication parameters are destroyed. They look like this:

image

image

Further, I also cannot change the inhibit time, the event timer etc. in this the TX PDO Mapping section, it overwrites the values. When I export the OD files I get the following warnings:

image

I'm using the latest build of the CanOpenEditor

Don't know how to compile

Hello there, I would like to create an ODS from an EDS.
However, I'm unable to compile the EDSEditor.sln with msbuild (I'm not really good in Linux), nor make

Could you please help me? 😞

The errors I get are something like this: (are you missing a using directive or an assembly reference?)
Btw, I'm on Ubuntu 22

Thanks in advance

RPO Count not updated

I added more RPOs, but the count on the Device Info stays at 4, shouldn't this increase as I add more RPOs?
Example3
Example4

Question: are the generated C files subject to (L)GPL?

It seems to depend per software stack whether or not the generated files are also subject to the same (L)GPL license.
Since I can't find any example output files in this repository, could you confirm or deny whether the output files are licensed, and if yes, by which license?

Subobjects without default value won't appear in OD.h/.c

Hi,

Thanks for all your efforts on this repo.

I just noticed that I couldn't get couple of subobjects of a record to show up in the OD.h and .c, after a debugging for a while I figured that if you have not provided a default value, those subobjects wouldn't appear in the OD files. I believe there should be sort of warning in that case to remind the user about that.

Here is the code line that checks for default value I believe.
image

Errors when exporting to object dictionary

Hi, When i import an eds file for the maxon epos4 controller and export the CANopenNode OD.h & OD.c, i receive the following errors:

Error in 0x1000: 'Count Label' must be 'NMT'
Error in 0x1001: 'Count Label' must be 'EM'
Error in 0x1005: 'Count Label' must be 'SYNC'
Error in 0x1010: 'Count Label' must be 'STORAGE'
Error in 0x1011: SubIndexes in ARRAY must be in sequence!
Error in 0x1014: 'Count Label' must be 'EM_PROD'
Error in 0x1016: 'Count Label' must be 'HB_CONS'
Error in 0x1017: 'Count Label' must be 'HB_PROD'
Error in 0x1200: 'Count Label' must be 'SDO_SRV'
Error in 0x1400: 'Count Label' must be 'RPDO'
Error in 0x1401: 'Count Label' must be 'RPDO'
Error in 0x1402: 'Count Label' must be 'RPDO'
Error in 0x1403: 'Count Label' must be 'RPDO'
Error in 0x1800: 'Count Label' must be 'TPDO'
Error in 0x1801: 'Count Label' must be 'TPDO'
Error in 0x1802: 'Count Label' must be 'TPDO'
Error in 0x1803: 'Count Label' must be 'TPDO'
Error in 0x3000: Default value must be defined on all ARRAY elements or must be undefined on all ARRAY elements!
Error in 0x3000: Attributes of elements in ARRAY must be equal
Error in 0x3000: Default value must be defined on all ARRAY elements or must be undefined on all ARRAY elements!
Error in 0x3000: Attributes of elements in ARRAY must be equal
Error in 0x301A: Default value must be defined on all ARRAY elements or must be undefined on all ARRAY elements!
Error in 0x301A: Attributes of elements in ARRAY must be equal
Error in 0x3141: Default value must be defined on all ARRAY elements or must be undefined on all ARRAY elements!
Error in 0x3141: Attributes of elements in ARRAY must be equal
Error in 0x3150: Default value must be defined on all ARRAY elements or must be undefined on all ARRAY elements!
Error in 0x3150: Attributes of elements in ARRAY must be equal
Error in 0x31E4: Default value must be defined on all ARRAY elements or must be undefined on all ARRAY elements!
Error in 0x31E4: Attributes of elements in ARRAY must be equal
Error in 0x3248: Default value must be defined on all ARRAY elements or must be undefined on all ARRAY elements!
Error in 0x3248: Attributes of elements in ARRAY must be equal
Error in 0x60E5: SubIndexes in ARRAY must be in sequence!
Error in 0x60E5: SubIndexes in ARRAY must be in sequence!
Error in 0x60E5: SubIndexes in ARRAY must be in sequence!

What could be the problem and how can i fix it?

LSS Master/Slave parameters does not export to OD.c/h

After switching the "LSS Master" or "LSS Slave" under Device Info->General and Master Features and generating the OD.c/h does not change the CNT_LSS_MST / CNT_LSS_SLV value in OD.h. It is always equal to zero as in below example:

(config).CNT_LSS_SLV = 0;\
(config).CNT_LSS_MST = 0;\

Typo in generatd DCF file

Hello,

I used the CANopenEditor version 4.0-104-g6f50f73 to configure some nodes and generate a coresponding DCF.
In the DCF I noticed that the block with the general device setup is generated as [DeviceComissioning] while it should be [DeviceCommissioning] (with "mm").

It's a small type, but it prevents for example https://canopen.readthedocs.io/en/latest/ to read in the generated DCF.
I looked for the string in the source code and fix it myself, but couldn't find it.

Do you have any suggestions? It seems to be one of the few parts where it is not possible to rename the field through the GUI.

Issues with RX PDO Mapping

I have a EDS with 40 writeable analog outputs. I'm trying to map these on the RX PDO Mapping screen, but running into issues.

It seems the Getbase(string defaultvalue) function is returning the wrong fromBase number for different values.
For example 0c will return base 10 instead of 16 and 08 will return base 8 instead of 10.
So it's impossible to map these outputs to the PDO.

I think the list items should have the 0x in front of the sub entry. It's even mentioned in code in the file DevicePDOView2.cs :
UInt16 newindex = EDSsharp.ConvertToUInt16(bits[0]);
//warning if the subindex is still hex the converter will not know about it
//we may need to append 0x to keep it correct
UInt16 newsubindex = EDSsharp.ConvertToUInt16(bits[1]);

Example

Adding new RX PDO does nothing!

When I press the Add new PDO in the RX PDO Mapping nothing happens.
The only change is that the Available Objects for PDO gets a slide bar.

I'm using the latest Windows build.

Before pressing the button
image

After pressing the button
image

This happens in any project, be it a new empty one or a populated one like demoDevice from CANopenDemo

After pressing the button nothing happens
image

Two (different) objects with the same name can be created but will not be exported in source code (legacy exporter)

If there are two (different) objects with the same name only one will be created in sCO_OD_RAM
Without any error/warning.

Alternitives:

  1. It should create an ERROR message on export if not permitted (Compare with standard, EDS checker is fine with that)
  2. It should not be created if not permitted
  3. It could add an index on export (if it is permitted by the standard)

@CANopenNode : What do you think is best?

image

`/*2002 */
#define OD_2002_stringTest 0x2002

    #define OD_2002_0_stringTest_maxSubIndex                    0
    #define OD_2002_1_stringTest_subObject1                     1
    #define OD_2002_2_stringTest_subObject1                     2
    #define OD_2002_3_stringTest_subObject1                     3
    #define OD_2002_4_stringTest_subObject1                     4
    #define OD_2002_5_stringTest_subObject1                     5
    #define OD_2002_6_stringTest_subObject1                     6
    #define OD_2002_7_stringTest_subObject1                     7

/*******************************************************************************
STRUCTURES FOR VARIABLES IN DIFFERENT MEMORY LOCATIONS
*******************************************************************************/
#define CO_OD_FIRST_LAST_WORD 0x55 //Any value from 0x01 to 0xFE. If changed, EEPROM will be reinitialized.

/***** Structure for RAM variables ********************************************/
struct sCO_OD_RAM{
UNSIGNED32 FirstWord;

/*2000 */ VISIBLE_STRING stringTest[2];
/*2001 */ UNSIGNED32 newObject[5];

           UNSIGNED32     LastWord;

};`

Mapping issue II

  1. Changes in the PDOview list (e.g. COB-ID) are not reflected in the textBox.

Example: The selected item (0x1801) in the PDOview list the COB_ID been changed to "180". In the textbox has still the old value of 180.

image

  1. Pressing the "Save" button does not save the changes made in the textBoxes or in the PDOview list.
    The changes will be lost.

Example:
If you change the COB-ID in the PDOview list and in the textBox from 280 to 180 after pressing the "Save" button both values are changed to the old value of 280 instead of saving the new value (180)

Before ( COB ID of 1801 is 280 ):
image

Change COB ID of 1801 to 180 (TextBox and PDOview)
image

After "Save" ( COB ID of 1801 is 280 again):
image

PDOHelper.cs:411 misprint

there is

if( (configindex<0x1400) || (configindex >= 0x1a00) || ((configindex>=1600) && (configindex<0x1800)))

1600 in decimal. Must be in hex:

if( (configindex<0x1400) || (configindex >= 0x1a00) || ((configindex>=0x1600) && (configindex<0x1800)))

DeviceCommissioning / DeviceComissioning

The DSP302 (V3.2.1) stated:

Device Configuration File
Configuration tools have to know, which device in the network is the CANopen Manager. For
the purpose of designating this manufacturer independent, this information is written into the
DCF files of the project. The section DeviceComissioning of each device contains the boolean entry CANopenManager. If the entry is missing, the described device is not the CANopen
Manager.

Some tools (eg. EDSchecker from Vector) use the DSP302 definition [DeviceComissioning]
but some others (e.g. HMS/Ixxat CanAnalyser) use right spelling: [DeviceCommissioning]

The CANopenEditor uses DeviceCommissioning, which satisfied just one variant.

How to make it compatible for both?

High/Low limit entries have no effect on the object dictionary?

I reported the same problem to the CANopen Node project, a related project to this application. Since I haven't received an answer yet, I would also like to get information from here.

High/Low limit values ​​for objects have no effect on the output of the object dictionary. In other words, the min/max values ​​I entered do not cause the objects to be limited in any way. Is there a solution to this or will it be fixed if it is a bug?

Reopened network file crashes during saving

Hello. It is possible to save network file once, but then opening it and saving will crash (seems like getting current directory path and normalizing it throws).

Windows 10.

possible bug in fix #220: Set the mapping typedefs to set the max number in the group they are in

See: robincornelius#220

The ranges and logical operators are suspicious:
It should be


                if (kvp.Key>=0x1600 && kvp.Key<0x1800) // inspect range 0x1600...0x17FF (RPDO communication parameter)
                {
                    //change the OD entry to the largest one
                    od = maxRXmappingsOD;
                }

                if (kvp.Key >= 0x1A00 && kvp.Key < 0x1C00) // inspect range 0x1A00...0x1BFF (TPDO communication parameter)
                {
                    //set the OD entry to the largest one
                    od = maxTXmappingsOD;
                }

instead of

                if (kvp.Key > 0x1600 || kvp.Key < 0x1800)   // why OR? This takes all numbers 0...0xFFFF 
                {
                    //change the OD entry to the largest one
                    od = maxRXmappingsOD;
                }

                if (kvp.Key > 0x1A00 || kvp.Key < 0x1C00)
                {
                    //change the OD entry to the largest one
                    od = maxTXmappingsOD;
                }

And it's good to search the mappings to find the largest one, but setting the "od" variable to maxXXmappingsOD, e.g.
od = maxRXmappingsOD;
doesn't work because the member list creation still uses kvp.Value.subobjects, which is not the maximum number of members.

so instead using
foreach (KeyValuePair<UInt16, ODentry> kvp2 in kvp.Value.subobjects)

it should be something like

foreach (KeyValuePair<UInt16, ODentry> kvp2 in od.subobjects)

Because "od" is set to the max[TX/RX]mappingsOD

Out of index fault in OD export

There is out of index fault when exporting OD to CanOpenNode V4. Error is in Make_cname function and happen when parameter name starts with single letter followed by white space (for example "X axis"), at code line 694 ( else if (Char.IsLower(tok[1])) access out of string length.

HighLimit and LowLimit

With each and every OD entry (Index and subindex) combination, there are additional attributes which can be set by the user.
image

What is the significance and need of these additional object settings?

For example, we have tried to set high and low limit on one OD entry and when we are trying to generate OD.c/OD.h from it, this information is not associated with the OD entry at all !!

XDD file has these values as

image

Do we have corresponding structures in CANOpenNode to ingest and validate while doing SDO/PDO transactions wrt min and maximum value?

There is a bug with app UI

I download the [CANopenEditor-build.zip] source and run.But the UI in "Object Dictinoary" drives me carzy.
image
image
I don't know why it happend.

Exporter writes lowercase "i" to "ı" when exporting CanOpenNode

I'm using Turkish language settings. When I try to export CanOpenNode command, it exports "identitiy" as "ıdentity". I can correct this with a simple find/replace, but it will be better corrected in the source code.

Here is the output in OD.h file:

struct {
    uint8_t highestSub_indexSupported;
    uint32_t vendor_ID;
    uint32_t productCode;
    uint32_t revisionNumber;
    uint32_t serialNumber;
} x1018_ıdentity;

Previous version of the application

Hi!

I worked with this tool a few months ago and now I need to use it again but the files it generates have been updated and I would not like to update my project.

Does anyone have the previous executable?

Thanks you!

RX/ TX PDO Mapping destroys the SDO-access type

On v4.0-51-g2d9b1ad binaries:

When in DevicePDOview (RX/ TX PDO Mapping) the PDOs are stored, the SDO Access-type is set to "access-no" and displayed in the object dictionary with "UNKNOWN".

image

Very frustrating!
You have to touch all objects and subs and change the SDO Access-type manually, or edit the XDD.

The editor still needs some fine tuning in many places, but especially the mapping is still quite buggy.

Project saves always with the default data

The issue is clearly visible in the following video:
https://youtu.be/V2HeW5CfOvE

The new project is created and multiple fields are changed in 'Device info' area.
After saving the project using File->Save Project As or File->Save Project all the data fields are reverted to factory values before save and the file is saved with reverted data.
It is not possible to save the Project anyhow.

It works the same when running native on Windows, Linux on Mono and Linux on Wine.

I was running binary version available here:
https://github.com/CANopenNode/CANopenEditor/archive/refs/heads/build.zip

Am I doing something wrong?

TDO cannot be removed

I use the version 4.0.103.
Create a new project.
Go to "TX PDO mapping" tab.
Click the button "Add new PDO"Add a new TPDO,.
Click the TPDO line to select it.
Click the button "Delete PDO" and confirm the action.
The TPDO is not removed.
Same thing for RPDO.
Thanks.

ArrayOutOfBoundsException on loading xdd file

I'm wondering why there is no issue about this exception on loading a xdd file into the editor:
Exception

the line is already marked as #WTF ;)

reason

Changing the subindex to zero get's the editor to work, but don't get the proof that everything else works correct.

Tested with generated xdd files from Kickdrive and Systec tools.

Editor created OD.c does not compile

when using the standard Canopennode example DS301_profile.eds file with the editor and export canopen OD.h/c, i get compile errors.

This also happened when modifying things in my project.

So, editor not usable!

Export documentation broken on linux/mono

When running the latest build v4.0-51-g2d9b1ad exe file on Linux (Lubuntu 20.04 or Debian 11) with mono 6.8.0.105, I get the following error when trying to export Documentation (Ctrl-P), even with a new default OD file:

System.ComponentModel.Win32Exception (0x80004005): Cannot find the specified file
  at System.Diagnostics.Process.StartWithShellExecuteEx (System.Diagnostics.ProcessStartInfo startInfo) [0x00129] in <a85c1a570f9a4f9f9c3d2cfa5504e34f>:0 
  at System.Diagnostics.Process.Start () [0x00038] in <a85c1a570f9a4f9f9c3d2cfa5504e34f>:0 
  at (wrapper remoting-invoke-with-check) System.Diagnostics.Process.Start()
  at System.Diagnostics.Process.Start (System.Diagnostics.ProcessStartInfo startInfo) [0x0001e] in <a85c1a570f9a4f9f9c3d2cfa5504e34f>:0 
  at System.Diagnostics.Process.Start (System.String fileName) [0x00006] in <a85c1a570f9a4f9f9c3d2cfa5504e34f>:0 
  at ODEditor.ODEditor_MainForm.documentationToolStripMenuItem_Click (System.Object sender, System.EventArgs e) [0x00111] in <430ff197535c448e93032a5323a38e45>:0 

This used to work for me on Linux a while back. I don't know if it was a change to CANopenEditor or an update to mono that broke things. Thanks for any help.

More than 3 TPDOs

I have another problem/question. But this is better placed in a new issue.
When I try to set up more than 3 TPDOs, it works in the editor. But the device makes an error when it tries to send this last PDO. As EMCY message comes "CO_EMC_CAN_OVERRUN" together with "CO_EM_EMERGENCY_BUFFER_FULL".
As soon as I delete the TPDO, the configuration works as planned.

If anyone knows advice, I have uploaded the xdd files and the OD files.

3PDOs.xdd: https://filehorst.de/d/eazcilwe
4PDOs.xdd: https://filehorst.de/d/eiFsCFgu
OD_3PDOs.c: https://filehorst.de/d/efxqekDa
OD_3PDOs.h: https://filehorst.de/d/eBJdufbz
OD_4PDOs.c: https://filehorst.de/d/enkgGsiJ
OD_4PDOs.h: https://filehorst.de/d/eevfnJEb

Mapping issue

Using v4.0-51

image

  1. Byte 7 in RX TX Mapping does not leave edit mode on focus change (e.g. double click other Byte)

  2. When dragging and dropping objects onto a field (byte 0...7), the objects are reordered (sequence changes)

Mappable TX Objects 2800h Sub 1...8
E.g.:
Drop the 2800,1 to Byte 0
Drop the 2800,2 to Byte 1
...
Drop the 2800,8 to Byte 7

Mapping is other than
1, 188, 1400, 2800.1, ..., 2800.8

That happens, when you drop in field byte 7
before dropping field byte 7 (3. PDO)
image
after
image

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.