Этот пример показывает вам, как создать и управлять группами параметра J1939, использующими информацию, хранившую в файлах DBC. Этот пример использует файл J1939.dbc
. Создание и использование параметра группируются, этот путь рекомендуется при необходимости передать данные к сети J1939.
Откройте файл DBC с помощью canDatabase
получить доступ к определениям.
db = canDatabase("J1939.dbc")
db = Database with properties: Name: 'J1939' Path: '/tmp/BR2021bd_1751886_255755/mlx_to_docbook2/tpadb915a3/vnt-ex46196345/J1939.dbc' Nodes: {2x1 cell} NodeInfo: [2x1 struct] Messages: {2x1 cell} MessageInfo: [2x1 struct] Attributes: {3x1 cell} AttributeInfo: [3x1 struct] UserData: []
Используйте j1939ParameterGroup
функция, чтобы создать группу параметра, использующую информацию, содержавшую в базе данных.
pg = j1939ParameterGroup(db, "VehicleDataSingle")
pg = ParameterGroup with properties: Protocol Data Unit Details: --------------------------- Name: 'VehicleDataSingle' PGN: 40192 Priority: 6 PDUFormatType: 'Peer-to-Peer (Type 1)' SourceAddress: 254 DestinationAddress: 254 Data Details: ------------- Timestamp: 0 Data: [255 255 255 255 255 255 255 255] Signals: [1x1 struct] Other Information: ------------------ UserData: []
Чтобы полностью задать группу параметра и определить логистику ее передачи в сети, установите исходные адреса и адреса назначения.
pg.SourceAddress = 30
pg = ParameterGroup with properties: Protocol Data Unit Details: --------------------------- Name: 'VehicleDataSingle' PGN: 40192 Priority: 6 PDUFormatType: 'Peer-to-Peer (Type 1)' SourceAddress: 30 DestinationAddress: 254 Data Details: ------------- Timestamp: 0 Data: [255 255 255 255 255 255 255 255] Signals: [1x1 struct] Other Information: ------------------ UserData: []
pg.DestinationAddress = 50
pg = ParameterGroup with properties: Protocol Data Unit Details: --------------------------- Name: 'VehicleDataSingle' PGN: 40192 Priority: 6 PDUFormatType: 'Peer-to-Peer (Type 1)' SourceAddress: 30 DestinationAddress: 50 Data Details: ------------- Timestamp: 0 Data: [255 255 255 255 255 255 255 255] Signals: [1x1 struct] Other Information: ------------------ UserData: []
Установите Priority
свойство далее настроить передачу.
pg.Priority = 5;
Используйте Signals
свойство видеть значения сигналов для этой группы параметра. Можно непосредственно записать в и читать из этих сигналов упаковать или распаковать данные в группе параметра.
pg.Signals
ans = struct with fields:
VehicleSignal4: -1
VehicleSignal3: -1
VehicleSignal2: -1
VehicleSignal1: -1
Запишите непосредственно в сигнал изменить значение и считать его текущее значение назад.
pg.Signals.VehicleSignal1 = 10
pg = ParameterGroup with properties: Protocol Data Unit Details: --------------------------- Name: 'VehicleDataSingle' PGN: 40192 Priority: 5 PDUFormatType: 'Peer-to-Peer (Type 1)' SourceAddress: 30 DestinationAddress: 50 Data Details: ------------- Timestamp: 0 Data: [10 0 255 255 255 255 255 255] Signals: [1x1 struct] Other Information: ------------------ UserData: []
pg.Signals.VehicleSignal2 = 100
pg = ParameterGroup with properties: Protocol Data Unit Details: --------------------------- Name: 'VehicleDataSingle' PGN: 40192 Priority: 5 PDUFormatType: 'Peer-to-Peer (Type 1)' SourceAddress: 30 DestinationAddress: 50 Data Details: ------------- Timestamp: 0 Data: [10 0 100 0 255 255 255 255] Signals: [1x1 struct] Other Information: ------------------ UserData: []
pg.Signals.VehicleSignal3 = 1000
pg = ParameterGroup with properties: Protocol Data Unit Details: --------------------------- Name: 'VehicleDataSingle' PGN: 40192 Priority: 5 PDUFormatType: 'Peer-to-Peer (Type 1)' SourceAddress: 30 DestinationAddress: 50 Data Details: ------------- Timestamp: 0 Data: [10 0 100 0 232 3 255 255] Signals: [1x1 struct] Other Information: ------------------ UserData: []
pg.Signals.VehicleSignal4 = 10000
pg = ParameterGroup with properties: Protocol Data Unit Details: --------------------------- Name: 'VehicleDataSingle' PGN: 40192 Priority: 5 PDUFormatType: 'Peer-to-Peer (Type 1)' SourceAddress: 30 DestinationAddress: 50 Data Details: ------------- Timestamp: 0 Data: [10 0 100 0 232 3 16 39] Signals: [1x1 struct] Other Information: ------------------ UserData: []
pg.Signals
ans = struct with fields:
VehicleSignal4: 10000
VehicleSignal3: 1000
VehicleSignal2: 100
VehicleSignal1: 10
Можно также записать значения непосредственно в Data
свойство, несмотря на то, что устанавливая значения через Signals
обычно рекомендуется и предпочитается.
pg.Data(1:2) = [50 0]
pg = ParameterGroup with properties: Protocol Data Unit Details: --------------------------- Name: 'VehicleDataSingle' PGN: 40192 Priority: 5 PDUFormatType: 'Peer-to-Peer (Type 1)' SourceAddress: 30 DestinationAddress: 50 Data Details: ------------- Timestamp: 0 Data: [50 0 100 0 232 3 16 39] Signals: [1x1 struct] Other Information: ------------------ UserData: []
pg.Signals
ans = struct with fields:
VehicleSignal4: 10000
VehicleSignal3: 1000
VehicleSignal2: 100
VehicleSignal1: 50