Skip to content

Commit

Permalink
[Core]: Add references for Industry Group and Device Class/Vehicle sy…
Browse files Browse the repository at this point in the history
…stem

Added enums that define IGs and device classes.
Besides being a nice reference to have, I was thinking of using
the device class to describe an implement type in the DDOP helper class
I am working on.
  • Loading branch information
ad3154 committed Feb 10, 2024
1 parent e02107b commit 685f88c
Showing 1 changed file with 81 additions and 0 deletions.
81 changes: 81 additions & 0 deletions isobus/include/isobus/isobus/can_NAME.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,21 @@ namespace isobus
ArbitraryAddressCapable ///< Defines if this ECU supports address arbitration
};

/// @brief The industry group is part of the ISO NAME.
/// It allocates devices and their functions by a specific industry.
/// Function codes' meanings are defined in relation to industry group and device class.
enum class IndustryGroup : std::uint8_t
{
Global = 0, ///< Global applies to all industries
OnHighwayEquipment = 1,
AgriculturalAndForestryEquipment = 2,
ConstructionEquipment = 3,
Marine = 4,
IndustrialOrProcessControl = 5,
Reserved1 = 6, ///< Reserved for future assignment by SAE. Should not be used.
Reserved2 = 7 ///< Reserved for future assignment by SAE. Should not be used.
};

/// @brief See ISO11783-1 and www.isobus.net For complete descriptions of the ISO NAME function codes
/// @note Functions are defined in relation to industry group and device class. See www.isobus.net for more info.
enum class Function : std::uint8_t
Expand Down Expand Up @@ -341,6 +356,72 @@ namespace isobus
MaxFunctionCode = 255 ///< Max allocated function code
};

/// @brief The device class is part of the ISO NAME and is known in J1939 as the "vehicle system".
/// This is a 7-bit field defined and assigned by SAE.
/// Device class provides a common name for a group of functions
/// within a connected network.
enum class DeviceClass
{
NonSpecific = 0,
Tractor = 1, ///< Industry Group 1 and 2
SkidSteerLoader = 1, ///< Industry Group 3
Trailer = 2, ///< Industry group 1 and 2
ArticulatedDumpTruck = 2, ///< Industry group 3
SecondaryTillage = 3, ///< Industry group 2
Backhoe = 3, ///< Industry group 3
PlanterSeeder = 4, ///< Industry group 2
Crawler = 4, ///< Industry group 3
Fertilizer = 5, ///< Industry group 2
Excavator = 5, ///< Industry group 3
Sprayer = 6, ///< Industry group 2
Forklift = 6, ///< Industry group 3
Harvester = 7, ///< Industry group 2
FourWheelDriveLoader = 7, ///< Industry group 3
RootHarvester = 8, ///< Industry group 2
Grader = 8, ///< Industry group 3
Forage = 9, ///< Industry group 2
MillingMachine = 9, ///< Industry group 3
Irrigation = 10, ///< Industry group 2
RecyclerAndSoilStabilizer = 10, ///< Industry group 3
SystemTools = 10, ///< Industry group 4
TransportTrailer = 11, ///< Industry group 2
BindingAgentSpreader = 11, ///< Industry group 3
FarmYardOperations = 12, ///< Industry group 2
Paver = 12, ///< Industry group 3
PoweredAuxiliaryDevices = 13, ///< Industry group 2
Feeder = 13, ///< Industry group 3
SpecialCrops = 14, ///< Industry group 2
ScreeningPlant = 14, ///< Industry group 3
Earthwork = 15, ///< Industry group 2
Stacker = 15, ///< Industry group 3
Skidder = 16, ///< Industry group 2
Roller = 16, ///< Industry group 3
SensorSystems = 17, ///< Industry group 2
Crusher = 17, ///< Industry group 3
TimberHarvester = 19, ///< Industry group 2
Forwarder = 20, ///< Industry group 2
SafetySystems = 20, ///< Industry group 4
TimberLoader = 21, ///< Industry group 2
TimberProcessor = 22, ///< Industry group 2
Mulcher = 23, ///< Industry group 2
UtilityVehicle = 24, ///< Industry group 2
SlurryManureApplicator = 25, ///< Industry group 2
Gateway = 25, ///< Industry group 4
FeederMixer = 26, ///< Industry group 2
WeederNonChemical = 27, ///< Industry group 2
TurfOrLawnCareMower = 28, ///< Industry group 2
ProductMaterialHandling = 29, ///< Industry group 2
PowerManagementAndLightingSystem = 30, ///< Industry group 4
SteeringSystems = 40, ///< Industry group 4
PropulsionSystems = 50, ///< Industry group 4
NavigationSystems = 60, ///< Industry group 4
CommunicationsSystems = 70, ///< Industry group 4
InstrumentationOrGeneral = 80, ///< Industry group 4
EnvironmentalHVACSystem = 90, ///< Industry group 4
DeckCargoOrFishingEquipment = 100, ///< Industry group 4
NotAvailable = 127 //< Applicable to all IGs
};

/// @brief A useful way to compare session objects to each other for equality
/// @param[in] obj The rhs of the operator
/// @returns `true` if the objects are "equal"
Expand Down

0 comments on commit 685f88c

Please sign in to comment.