+ case openxc_DynamicField_Type::openxc_DynamicField_Type_STRING:
+ for(const CanSignal& s : getSignals())
+ {
+ if(fnmatch(key.string_value, s.genericName, FNM_CASEFOLD) == 0)
+ signals.push_back(s);
+ }
+ break;
+ case openxc_DynamicField_Type::openxc_DynamicField_Type_NUM:
+ for(const CanSignal& s : getSignals())
+ {
+ CanMessageDefinition *msg_def = s.message;
+ if(msg_def->id == key.numeric_value)
+ signals.push_back(s);
+ }
+ break;
+ default:
+ ERROR(interface, "find_can_signals: wrong openxc_DynamicField specified. Use openxc_DynamicField_Type_NUM or openxc_DynamicField_Type_STRING type only.");
+ CanSignal cs;
+ ::memset(&cs, 0, sizeof(CanSignal));
+ signals.push_back(cs);
+ return signals;
+ break;