@@ -140,26 +140,46 @@ int softing_open(int index)
140140 }
141141
142142 ret = INIL2_initialize_channel (& ctx -> hChannel , ctx -> channel_name );
143- if (CANL2_OK != ret )
143+ if (ret )
144144 {
145- set_error_reason ("Failed to initialize Softing CAN channel." );
145+ switch (ret )
146+ {
147+ case -1000 :
148+ set_error_reason ("Invalid channel handle." );
149+ break ;
150+ case -1002 :
151+ set_error_reason ("Too many channels opened." );
152+ break ;
153+ case -1003 :
154+ set_error_reason ("Version conflict: incompatible driver or DLL." );
155+ break ;
156+ case -1004 :
157+ set_error_reason ("Firmware download error (may be a DPRAM access error)." );
158+ break ;
159+ case -1005 :
160+ set_error_reason ("CAN USB DLL (canusbm.dll) not found or could not be loaded." );
161+ break ;
162+ default :
163+ set_error_reason ("Unknown error while initializing Softing CAN channel." );
164+ break ;
165+ }
146166 return -1 ;
147167 }
148168
149- cfg .fBaudrate = softing_baudrate_to_kbps (can_interface [index ].baudrate );
150- cfg .s32Prescaler = GET_FROM_SCIM ;
151- cfg .s32Tseg1 = GET_FROM_SCIM ;
152- cfg .s32Tseg2 = GET_FROM_SCIM ;
153- cfg .s32Sjw = GET_FROM_SCIM ;
154- cfg .s32Sam = GET_FROM_SCIM ;
155- cfg .s32AccCodeStd = GET_FROM_SCIM ;
156- cfg .s32AccMaskStd = GET_FROM_SCIM ;
157- cfg .s32AccCodeXtd = GET_FROM_SCIM ;
158- cfg .s32AccMaskXtd = GET_FROM_SCIM ;
159- cfg .s32OutputCtrl = GET_FROM_SCIM ;
160- cfg .bEnableAck = GET_FROM_SCIM ;
169+ cfg .fBaudrate = softing_baudrate_to_kbps (can_interface [index ].baudrate );
170+ cfg .s32Prescaler = GET_FROM_SCIM ;
171+ cfg .s32Tseg1 = GET_FROM_SCIM ;
172+ cfg .s32Tseg2 = GET_FROM_SCIM ;
173+ cfg .s32Sjw = GET_FROM_SCIM ;
174+ cfg .s32Sam = GET_FROM_SCIM ;
175+ cfg .s32AccCodeStd = GET_FROM_SCIM ;
176+ cfg .s32AccMaskStd = GET_FROM_SCIM ;
177+ cfg .s32AccCodeXtd = GET_FROM_SCIM ;
178+ cfg .s32AccMaskXtd = GET_FROM_SCIM ;
179+ cfg .s32OutputCtrl = GET_FROM_SCIM ;
180+ cfg .bEnableAck = GET_FROM_SCIM ;
161181 cfg .bEnableErrorframe = GET_FROM_SCIM ;
162- cfg .hEvent = NULL ;
182+ cfg .hEvent = NULL ;
163183
164184 ret = CANL2_initialize_fifo_mode (ctx -> hChannel , & cfg );
165185 if (CANL2_OK != ret )
@@ -264,7 +284,7 @@ int softing_update(int index)
264284
265285 free (channels );
266286
267- if (!found )
287+ if (! found )
268288 {
269289 can_release (index );
270290 return -1 ;
0 commit comments