diff --git a/CMakeLists.txt b/CMakeLists.txt index f6bac415..132e4f62 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -173,7 +173,8 @@ install(FILES "${CMAKE_CURRENT_BINARY_DIR}/isobusConfig.cmake" set(CPACK_PACKAGE_CONTACT "delgrossoengineering@protonmail.com") set(CPACK_DEBIAN_FILENAME DEB-DEFAULT) -set(CPACK_DEBIAN_PACKAGE_HOMEPAGE "https://github.com/ad3154/Isobus-plus-plus") -set(CPACK_PACKAGE_VENDOR "https://github.com/ad3154/Isobus-plus-plus") +set(CPACK_DEBIAN_PACKAGE_HOMEPAGE + "https://github.com/Open-Agriculture/AgIsoStack-plus-plus") +set(CPACK_PACKAGE_VENDOR "Open-Agriculture") set(CPACK_COMPONENTS_GROUPING ALL_COMPONENTS_IN_ONE) include(CPack) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index d7455217..e45591e1 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,6 +1,6 @@ -# Contributing to ISOBUS++ +# Contributing to AgIsoStack++ -We warmly welcome you to Isobus++! Contributing to our open source repository implementing the ISOBUS (ISO11783) standard in the agricultural industry can involve anything from adding new features, improving existing code, fixing bugs, or even just helping to test and document the project. We greatly appreciate any contributions you can make to help drive progress and innovation in this field. Thank you for your interest and support! +We warmly welcome you to AgIsoStack++! Contributing to our open source repository implementing the ISOBUS (ISO11783) standard in the agricultural industry can involve anything from adding new features, improving existing code, fixing bugs, or even just helping to test and document the project. We greatly appreciate any contributions you can make to help drive progress and innovation in this field. Thank you for your interest and support! We accept all public contributions that adhere to our code of conduct. Additionally, for PR's we require the pass of all automated pre-merge checks, and a manual code review by a repository maintainer to ensure that our high code quality and project standards are maintained. @@ -60,7 +60,7 @@ VS Code can be installed via the snap store, or by downloading it from [Microsof Clone the repo: ``` -git clone https://github.com/ad3154/Isobus-plus-plus.git +git clone https://github.com/Open-Agriculture/AgIsoStack-plus-plus.git ``` Then, open it in Code by clicking `File -> Open Folder`. diff --git a/README.md b/README.md index 5f25e17f..2d6d74c1 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -![ISOBUS++Logo](docs/images/wideLogoTransparent.png) +![AgIsoStack++Logo](docs/images/wideLogoTransparent.png) ![Features](docs/images/features.png) @@ -6,7 +6,7 @@ ## About This Library -Isobus++ is an MIT licensed hardware agnostic ISOBUS (ISO11783) and SAE J1939 CAN stack written in C++. +AgIsoStack++ (Formerly Isobus++) is an MIT licensed hardware agnostic ISOBUS (ISO11783) and SAE J1939 CAN stack written in C++. The library transparently supports the entire ISOBUS/J1939 transport layer, automatic address claiming, and many of the high level ISOBUS protocols, such as: @@ -38,7 +38,7 @@ A default CAN driver plug-in will be selected for you based on your OS, but when Or specify multiple using a semicolon separated list: `-DCAN_DRIVER=";"` -If your target hardware is not listed above, you can easily integrate your own hardware by [implementing a few simple functions](https://github.com/ad3154/ISO11783-CAN-Stack/tree/main/hardware_integration#writing-a-new-can-driver-for-the-stack). +If your target hardware is not listed above, you can easily integrate your own hardware by [implementing a few simple functions](https://github.com/Open-Agriculture/AgIsoStack-plus-plus/tree/main/hardware_integration#writing-a-new-can-driver-for-the-stack). ## Examples diff --git a/docs/images/wideLogoTransparent.png b/docs/images/wideLogoTransparent.png index e5d379e8..87032521 100644 Binary files a/docs/images/wideLogoTransparent.png and b/docs/images/wideLogoTransparent.png differ diff --git a/doxyfile b/doxyfile index 0865c7d1..9af1595c 100644 --- a/doxyfile +++ b/doxyfile @@ -32,7 +32,7 @@ DOXYFILE_ENCODING = UTF-8 # title of most generated pages and in a few other places. # The default value is: My Project. -PROJECT_NAME = Isobus++ +PROJECT_NAME = AgIsoStack++ # The PROJECT_NUMBER tag can be used to enter a project or revision number. This # could be handy for archiving the generated documentation or if some version diff --git a/examples/README.md b/examples/README.md index 4c4d6fa1..d30e6dfd 100644 --- a/examples/README.md +++ b/examples/README.md @@ -6,10 +6,10 @@ Then, use a call to `find_package()` to find this package. The same process can be used for all examples, however `diagnostic_protocol` is just shown as a reference. -First, build the Isobus-plus-plus CAN Stack. +First, build AgIsoStack-plus-plus. ``` # Build the library like normal -cd /path/to/root/directory/of/Isobus-plus-plus +cd /path/to/root/directory/of/AgIsoStack-plus-plus cmake -S . -B build cmake --build build # Install it locally in a directory called "install" diff --git a/examples/diagnostic_protocol/main.cpp b/examples/diagnostic_protocol/main.cpp index bf0a9888..4f3034f7 100644 --- a/examples/diagnostic_protocol/main.cpp +++ b/examples/diagnostic_protocol/main.cpp @@ -83,8 +83,8 @@ int main() { // Set a product identification string (in case someone requests it) diagnosticProtocol->set_product_identification_code("1234567890ABC"); - diagnosticProtocol->set_product_identification_brand("Del Grosso Engineering"); - diagnosticProtocol->set_product_identification_model("Isobus++ CAN Stack DP Example"); + diagnosticProtocol->set_product_identification_brand("Open-Agriculture"); + diagnosticProtocol->set_product_identification_model("AgIsoStack++ CAN Stack DP Example"); // Set a software ID string (This is what tells other ECUs what version your software is) diagnosticProtocol->set_software_id_field(0, "Diagnostic Protocol Example 1.0.0"); diff --git a/examples/pgn_requests/README.md b/examples/pgn_requests/README.md index e033d532..76656be9 100644 --- a/examples/pgn_requests/README.md +++ b/examples/pgn_requests/README.md @@ -8,7 +8,7 @@ For this example to work properly, you must have a valid, functional ISO 11783 C ## The Basics -This example will assume you have already learned the basics of the stack and ISOBUS communication, and won't go over the basic setup of your internal control function. If you need to brush up on those topics, check out the [transport layer example](https://github.com/ad3154/Isobus-plus-plus/tree/main/examples/transport_layer) first, or visit our [tutorial website](https://isobus-plus-plus.readthedocs.io/en/latest/index.html). +This example will assume you have already learned the basics of the stack and ISOBUS communication, and won't go over the basic setup of your internal control function. If you need to brush up on those topics, check out the [transport layer example](https://github.com/Open-Agriculture/AgIsoStack-plus-plus/tree/main/examples/transport_layer) first, or visit our [tutorial website](https://isobus-plus-plus.readthedocs.io/en/latest/index.html). ## PGN Requests diff --git a/examples/task_controller_client/section_control_implement_sim.cpp b/examples/task_controller_client/section_control_implement_sim.cpp index fa03fdd9..b2edc34b 100644 --- a/examples/task_controller_client/section_control_implement_sim.cpp +++ b/examples/task_controller_client/section_control_implement_sim.cpp @@ -82,7 +82,7 @@ bool SectionControlImplementSimulator::create_ddop(std::shared_ptradd_device("Isobus++ UnitTest", "1.0.0", "123", "I++1.0", localizationData, std::vector(), clientName.get_full_name()); + retVal &= poolToPopulate->add_device("AgIsoStack++ UnitTest", "1.0.0", "123", "A++1.0", localizationData, std::vector(), clientName.get_full_name()); retVal &= poolToPopulate->add_device_element("Sprayer", elementCounter++, 0, isobus::task_controller_object::DeviceElementObject::Type::Device, static_cast(ImplementDDOPObjectIDs::MainDeviceElement)); retVal &= poolToPopulate->add_device_process_data("Actual Work State", static_cast(isobus::DataDescriptionIndex::ActualWorkState), isobus::task_controller_object::Object::NULL_OBJECT_ID, static_cast(isobus::task_controller_object::DeviceProcessDataObject::PropertiesBit::MemberOfDefaultSet), static_cast(isobus::task_controller_object::DeviceProcessDataObject::AvailableTriggerMethods::OnChange), static_cast(ImplementDDOPObjectIDs::DeviceActualWorkState)); retVal &= poolToPopulate->add_device_process_data("Request Default PD", static_cast(ImplementDDOPObjectIDs::RequestDefaultProcessData), isobus::task_controller_object::Object::NULL_OBJECT_ID, 0, static_cast(isobus::task_controller_object::DeviceProcessDataObject::AvailableTriggerMethods::Total), static_cast(ImplementDDOPObjectIDs::RequestDefaultProcessData)); diff --git a/isobus/include/isobus/isobus/isobus_task_controller_client.hpp b/isobus/include/isobus/isobus/isobus_task_controller_client.hpp index f0178159..270b5114 100644 --- a/isobus/include/isobus/isobus/isobus_task_controller_client.hpp +++ b/isobus/include/isobus/isobus/isobus_task_controller_client.hpp @@ -544,7 +544,7 @@ namespace isobus /// @brief Enumerates the modes that the client may use when dealing with a DDOP enum class DDOPUploadType { - ProgramaticallyGenerated, ///< Using the isobus++ DeviceDescriptorObjectPool class + ProgramaticallyGenerated, ///< Using the AgIsoStack++ DeviceDescriptorObjectPool class UserProvidedBinaryPointer, ///< Using a raw pointer to a binary DDOP UserProvidedVector ///< Uses a vector of bytes that comprise a binary DDOP }; diff --git a/library.json b/library.json index ed3813a6..9f3d2860 100644 --- a/library.json +++ b/library.json @@ -1,11 +1,11 @@ { - "name": "Isobus++", + "name": "AgIsoStack++", "version": "1.0.0", "description": "The Free ISO11783 & J1939 CAN Stack", "keywords": "can, isobus, j1939, agritech, smart-farming, iso11783", "repository": { "type": "git", - "url": "https://github.com/ad3154/Isobus-plus-plus.git" + "url": "https://github.com/Open-Agriculture/AgIsoStack-plus-plus.git" }, "license": "MIT", "homepage": "https://isobusplusplus.com/", diff --git a/sonar-project.properties b/sonar-project.properties index 629f513a..c7630aa6 100644 --- a/sonar-project.properties +++ b/sonar-project.properties @@ -1,5 +1,5 @@ sonar.projectKey=ad3154_ISO11783-CAN-Stack -sonar.organization=isobus-plusplus +sonar.organization=open-agriculture # This is the name and version displayed in the SonarCloud UI. #sonar.projectVersion=1.0.0 diff --git a/sphinx/source/API Documentation.rst b/sphinx/source/API Documentation.rst index 38fd9948..c5d9bc92 100644 --- a/sphinx/source/API Documentation.rst +++ b/sphinx/source/API Documentation.rst @@ -23,11 +23,11 @@ Compiling the Doxygen locally You can also generate the Doxygen yourself and browse it locally. -From your project, change directory into the 'Isobus-plus-plus' folder. +From your project, change directory into the 'AgIsoStack-plus-plus' folder. .. code-block:: bash - cd Isobus-plus-plus + cd AgIsoStack-plus-plus Make sure you have Doxygen installed. diff --git a/sphinx/source/Concepts.rst b/sphinx/source/Concepts.rst index 9d8d2977..7a6ce02d 100644 --- a/sphinx/source/Concepts.rst +++ b/sphinx/source/Concepts.rst @@ -169,7 +169,7 @@ Here are the different transport layers this library provides, along with a shor * ISO11783 Adopts this protocol for a subset of standard GNSS messages * This protocol provides a means to stream up to 223 bytes of data, with the advantage that each frame retains the parameter group number and priority, where TP and ETP do not. -In general, the ISOBUS++ library will take care of choosing which protocol to use automatically. +In general, the AgIsoStack++ library will take care of choosing which protocol to use automatically. -Now that you understand these concepts, if you've done the other :doc:`tutorials `, check out the :doc:`Transport Layer Tutorial ` and `example `_. +Now that you understand these concepts, if you've done the other :doc:`tutorials `, check out the :doc:`Transport Layer Tutorial ` and `example `_. diff --git a/sphinx/source/FAQ.rst b/sphinx/source/FAQ.rst index 7485faa8..e760325f 100644 --- a/sphinx/source/FAQ.rst +++ b/sphinx/source/FAQ.rst @@ -24,7 +24,7 @@ If you are seeing something similar to this error: .. code-block:: text - /usr/bin/ld: Isobus-plus-plus/socket_can/libSocketCANInterface.so: undefined reference to `pthread_create' + /usr/bin/ld: AgIsoStack-plus-plus/socket_can/libSocketCANInterface.so: undefined reference to `pthread_create' collect2: error: ld returned 1 exit status make[2]: *** [CMakeFiles/isobus_hello_world.dir/build.make:86: isobus_hello_world] Error 1 make[1]: *** [CMakeFiles/Makefile2:285: CMakeFiles/isobus_hello_world.dir/all] Error 2 @@ -43,4 +43,4 @@ I have some other issue! ------------------------- Please submit an issue at the project's GitHub page: -https://github.com/ad3154/Isobus-plus-plus/issues +https://github.com/Open-Agriculture/AgIsoStack-plus-plus/issues diff --git a/sphinx/source/Installation.rst b/sphinx/source/Installation.rst index a92e0ba5..ffdb133e 100644 --- a/sphinx/source/Installation.rst +++ b/sphinx/source/Installation.rst @@ -10,7 +10,7 @@ Installation Supported Platforms -------------------- -We officially support building ISOBUS++ from source on the following platforms: +We officially support building AgIsoStack++ from source on the following platforms: * Ubuntu Linux (Non-WSL) * Raspberry Pi OS (Raspbian) * RHEL @@ -20,7 +20,7 @@ We officially support building ISOBUS++ from source on the following platforms: .. note:: - ISOBUS++ may also work on other platforms, and has been designed to accommodate different underlying hardware, but the ones listed above are the officially supported platforms. Additional platform support may be added if there is demand for it. + AgIsoStack++ may also work on other platforms, and has been designed to accommodate different underlying hardware, but the ones listed above are the officially supported platforms. Additional platform support may be added if there is demand for it. Using a supported platform will get you the best support for any issues you may encounter. @@ -37,17 +37,17 @@ First, lets prepare the dependencies we'll need to compile the CAN stack. These sudo apt install build-essential cmake git -Downloading ISOBUS++ ----------------------- +Downloading AgIsoStack++ +------------------------- In your project that you want to add the CAN stack to, add the CAN stack as a submodule. .. code-block:: bash - git submodule add https://github.com/ad3154/Isobus-plus-plus.git + git submodule add https://github.com/Open-Agriculture/AgIsoStack-plus-plus.git git submodule update --init --recursive -This will place the CAN stack in a folder within your project called 'Isobus-plus-plus'. +This will place the CAN stack in a folder within your project called 'AgIsoStack-plus-plus'. Building the CAN Stack ----------------------- @@ -57,14 +57,14 @@ There are a couple options for the next step. CMake: ^^^^^^ -If your project is already using CMake to build your project, or this is a new project, the suggested way to get the library compiling is to add the 'Isobus-plus-plus' folder we just created to your CMake as a subdirectory. +If your project is already using CMake to build your project, or this is a new project, the suggested way to get the library compiling is to add the 'AgIsoStack-plus-plus' folder we just created to your CMake as a subdirectory. .. code-block:: text set(THREADS_PREFER_PTHREAD_FLAG ON) find_package(Threads REQUIRED) - add_subdirectory("Isobus-plus-plus") + add_subdirectory("AgIsoStack-plus-plus") ... @@ -75,6 +75,6 @@ Using CMake has a lot of advantages, such as if the library is updated with addi Non-CMake: ^^^^^^^^^^ -If you are not using CMake, just make sure to add all the files from the 'Isobus-plus-plus/isobus' folder, the 'Isobus-plus-plus/hardware_integration' folder, and the 'Isobus-plus-plus/utility' folder to your project so they all get compiled. +If you are not using CMake, just make sure to add all the files from the 'AgIsoStack-plus-plus/isobus' folder, the 'AgIsoStack-plus-plus/hardware_integration' folder, and the 'AgIsoStack-plus-plus/utility' folder to your project so they all get compiled. -You'll want to make sure the 'Isobus-plus-plus/isobus/include/isobus/isobus' folder is part of your include path as well as 'Isobus-plus-plus/utility/include/isobus/utility' and 'Isobus-plus-plus/hardware_integration/include/isobus/hardware_integration'. +You'll want to make sure the 'AgIsoStack-plus-plus/isobus/include/isobus/isobus' folder is part of your include path as well as 'AgIsoStack-plus-plus/utility/include/isobus/utility' and 'AgIsoStack-plus-plus/hardware_integration/include/isobus/hardware_integration'. diff --git a/sphinx/source/Tutorials/Debug Logging.rst b/sphinx/source/Tutorials/Debug Logging.rst index 495a87d5..841401b4 100644 --- a/sphinx/source/Tutorials/Debug Logging.rst +++ b/sphinx/source/Tutorials/Debug Logging.rst @@ -50,4 +50,4 @@ The logger must be static or otherwise not go out of scope, as the CAN stack sav That's all there is to it! Now, when you run your program you should see some logging messages are written to your console. -A full example of this is included with the `VT example program `_. +A full example of this is included with the `VT example program `_. diff --git a/sphinx/source/Tutorials/The ISOBUS Hello World.rst b/sphinx/source/Tutorials/The ISOBUS Hello World.rst index 02b0926f..4b78fb44 100644 --- a/sphinx/source/Tutorials/The ISOBUS Hello World.rst +++ b/sphinx/source/Tutorials/The ISOBUS Hello World.rst @@ -38,7 +38,7 @@ Let's set up a standard, empty C++ program in a file called "main.cpp", and incl The file `"can_network_manager.hpp" `_ is the header file for the main interface for the CAN stack. -The file `"socket_can_interface.hpp" `_ is a hardware tie-in for socket CAN. +The file `"socket_can_interface.hpp" `_ is a hardware tie-in for socket CAN. The file `"can_partnered_control_function.hpp" `_ Defines the interface for a *partnered control function*, which is another device you want to communicate with. @@ -412,12 +412,12 @@ This will send our 8 byte message of all zeros to the global address, using the Compiling The Program (Using CMake) ------------------------------------ -Assuming you followed the :doc:`installation instructions <../Installation>` the program we just wrote should be in a folder, and the library should be in a directory called Isobus-plus-plus, like this: +Assuming you followed the :doc:`installation instructions <../Installation>` the program we just wrote should be in a folder, and the library should be in a directory called AgIsoStack-plus-plus, like this: .. code-block:: bash ls - Isobus-plus-plus main.cpp + AgIsoStack-plus-plus main.cpp To get everything compiling into a program using CMake, let's add a CMakeLists.txt file. @@ -437,7 +437,7 @@ Add the following to a new file called CMakeLists.txt: set(THREADS_PREFER_PTHREAD_FLAG ON) find_package(Threads REQUIRED) - add_subdirectory("Isobus-plus-plus") + add_subdirectory("AgIsoStack-plus-plus") add_executable(isobus_hello_world main.cpp) diff --git a/sphinx/source/Tutorials/Transport Layer.rst b/sphinx/source/Tutorials/Transport Layer.rst index 5a0a8297..6b49e505 100644 --- a/sphinx/source/Tutorials/Transport Layer.rst +++ b/sphinx/source/Tutorials/Transport Layer.rst @@ -73,6 +73,6 @@ You can do this by calling :code:`isobus::FastPacketProtocol::Protocol.register_ .. note:: - A full example of both sending and receiving can be found in the `examples folder `_ of this project. + A full example of both sending and receiving can be found in the `examples folder `_ of this project. That's it for this tutorial! Sending 100MB CAN messages has never been easier. diff --git a/sphinx/source/Tutorials/Virtual Terminal Basics.rst b/sphinx/source/Tutorials/Virtual Terminal Basics.rst index bc2942e0..1c9e3310 100644 --- a/sphinx/source/Tutorials/Virtual Terminal Basics.rst +++ b/sphinx/source/Tutorials/Virtual Terminal Basics.rst @@ -29,7 +29,7 @@ Let's start our program fresh, with a folder containing only the CAN stack. mkdir vt_example cd vt_example - git clone https://github.com/ad3154/Isobus-plus-plus.git + git clone https://github.com/Open-Agriculture/AgIsoStack-plus-plus.git Create the file `main.cpp` as shown below inside that folder with the requisite control functions. @@ -184,9 +184,9 @@ The `utility` folder in the CAN stack contains a helper function to read standar You can make one for yourself if you have access to an ISOBUS object pool designer tool of some kind, but for our purposes, one has been included in the examples folder for you called `VT3TestPool.iop`. -For this example, let's `download `_ that object pool (or grab it from the examples folder within the CAN stack), and place it in the same directory as your main.cpp file. +For this example, let's `download `_ that object pool (or grab it from the examples folder within the CAN stack), and place it in the same directory as your main.cpp file. -Let's also grab `this header file `_ and place it in the same folder. +Let's also grab `this header file `_ and place it in the same folder. This file is for convenience, and tells us what objects are inside the IOP file along with their object ID. Files like these are often created by VT object pool designer programs to give nice, human-readable names to your objects so that instead of referencing object 5001, we can instead reference it by the nicer name `acknowledgeAlarm_SoftKey` for example. @@ -562,7 +562,7 @@ We'll start off like we did in "ISOBUS Hello World". set(THREADS_PREFER_PTHREAD_FLAG ON) find_package(Threads REQUIRED) - add_subdirectory("Isobus-plus-plus") + add_subdirectory("AgIsoStack-plus-plus") add_executable(vt_example main.cpp) @@ -600,4 +600,4 @@ Now you should be able to build and run the program! That's it for this Tutorial. You should be able to run it as long as you have a VT and a supported CAN driver, see the test pool be uploaded, and be able to interact with all buttons on screen! -If you would like to see more advanced VT tutorials or have other feedback, please visit our `GitHub page `_ and feel free to open a discussion! We're friendly, we promise. +If you would like to see more advanced VT tutorials or have other feedback, please visit our `GitHub page `_ and feel free to open a discussion! We're friendly, we promise. diff --git a/sphinx/source/index.rst b/sphinx/source/index.rst index 79fcf32b..b73d588c 100644 --- a/sphinx/source/index.rst +++ b/sphinx/source/index.rst @@ -20,7 +20,7 @@ Overview ========== -**ISOBUS++ is a free and open source library that provides easy and robust ISO 11783 and J1939 CAN communication functionality using C++** +**AgIsoStack++ is a free and open source library that provides easy and robust ISO 11783 and J1939 CAN communication functionality using C++** .. note:: @@ -39,6 +39,6 @@ Table of Contents: * :doc:`FAQ ` -`Visit us on GitHub `_ +`Visit us on GitHub `_ diff --git a/test/ddop_tests.cpp b/test/ddop_tests.cpp index 8892aa97..1acd13b2 100644 --- a/test/ddop_tests.cpp +++ b/test/ddop_tests.cpp @@ -66,7 +66,7 @@ TEST(DDOP_TESTS, CreateSprayerDDOP) // Make a test pool, don't care about our ISO NAME, Localization label, or extended structure label for this test // Set up device - EXPECT_EQ(true, testDDOP.add_device("Isobus++ UnitTest", "1.0.0", "123", "I++1.0", testLanguageInterface.get_localization_raw_data(), std::vector(), 0)); + EXPECT_EQ(true, testDDOP.add_device("AgIsoStack++ UnitTest", "1.0.0", "123", "I++1.0", testLanguageInterface.get_localization_raw_data(), std::vector(), 0)); EXPECT_EQ(true, testDDOP.add_device_element("Sprayer", static_cast(SprayerDDOPObjectIDs::MainDeviceElement), 0, task_controller_object::DeviceElementObject::Type::Device, static_cast(SprayerDDOPObjectIDs::MainDeviceElement))); EXPECT_EQ(true, testDDOP.add_device_process_data("Actual Work State", static_cast(DataDescriptionIndex::ActualWorkState), task_controller_object::Object::NULL_OBJECT_ID, static_cast(task_controller_object::DeviceProcessDataObject::PropertiesBit::MemberOfDefaultSet), static_cast(task_controller_object::DeviceProcessDataObject::AvailableTriggerMethods::OnChange), static_cast(SprayerDDOPObjectIDs::DeviceActualWorkState))); EXPECT_EQ(true, testDDOP.add_device_value_presentation("minutes", 0, 1.0f, 1, static_cast(SprayerDDOPObjectIDs::TimePresentation))); @@ -117,8 +117,8 @@ TEST(DDOP_TESTS, DDOPDetectDuplicateID) DeviceDescriptorObjectPool testDDOP; LanguageCommandInterface testLanguageInterface(nullptr, nullptr); - EXPECT_EQ(true, testDDOP.add_device("Isobus++ UnitTest", "1.0.0", "123", "I++1.0", testLanguageInterface.get_localization_raw_data(), std::vector(), 0)); - EXPECT_EQ(false, testDDOP.add_device("Isobus++ UnitTest", "1.0.0", "123", "I++1.0", testLanguageInterface.get_localization_raw_data(), std::vector(), 0)); + EXPECT_EQ(true, testDDOP.add_device("AgIsoStack++ UnitTest", "1.0.0", "123", "I++1.0", testLanguageInterface.get_localization_raw_data(), std::vector(), 0)); + EXPECT_EQ(false, testDDOP.add_device("AgIsoStack++ UnitTest", "1.0.0", "123", "I++1.0", testLanguageInterface.get_localization_raw_data(), std::vector(), 0)); EXPECT_EQ(true, testDDOP.add_device_value_presentation("m", 0, 0.001f, 0, static_cast(SprayerDDOPObjectIDs::LongWidthPresentation))); EXPECT_EQ(false, testDDOP.add_device_value_presentation("m", 0, 0.001f, 0, static_cast(SprayerDDOPObjectIDs::LongWidthPresentation))); @@ -211,11 +211,11 @@ TEST(DDOP_TESTS, DeviceElementDesignatorTests) LanguageCommandInterface testLanguageInterface(nullptr, nullptr); - EXPECT_EQ(true, testDDOPVersion3.add_device("Isobus++ UnitTest", "1.0.0", "123", "I++1.0", testLanguageInterface.get_localization_raw_data(), std::vector(), 0)); + EXPECT_EQ(true, testDDOPVersion3.add_device("AgIsoStack++ UnitTest", "1.0.0", "123", "I++1.0", testLanguageInterface.get_localization_raw_data(), std::vector(), 0)); EXPECT_EQ(true, testDDOPVersion3.add_device_element("Sprayer But like with a super long designator, just a really impractical one", static_cast(SprayerDDOPObjectIDs::MainDeviceElement), 0, task_controller_object::DeviceElementObject::Type::Device, static_cast(SprayerDDOPObjectIDs::MainDeviceElement))); - EXPECT_EQ(true, testDDOPVersion4.add_device("Isobus++ UnitTest", "1.0.0", "123", "I++1.0", testLanguageInterface.get_localization_raw_data(), std::vector(), 0)); + EXPECT_EQ(true, testDDOPVersion4.add_device("AgIsoStack++ UnitTest", "1.0.0", "123", "I++1.0", testLanguageInterface.get_localization_raw_data(), std::vector(), 0)); EXPECT_EQ(true, testDDOPVersion4.add_device_element("Sprayer But like with a super long designator, just a really impractical one", static_cast(SprayerDDOPObjectIDs::MainDeviceElement), 0, task_controller_object::DeviceElementObject::Type::Device, static_cast(SprayerDDOPObjectIDs::MainDeviceElement))); - EXPECT_EQ(true, testDDOPVersion4_2.add_device("Isobus++ UnitTest", "1.0.0", "123", "I++1.0", testLanguageInterface.get_localization_raw_data(), std::vector(), 0)); + EXPECT_EQ(true, testDDOPVersion4_2.add_device("AgIsoStack++ UnitTest", "1.0.0", "123", "I++1.0", testLanguageInterface.get_localization_raw_data(), std::vector(), 0)); EXPECT_EQ(true, testDDOPVersion4_2.add_device_element("Sprayer But like with a super long designator, just a really impractical one, it's really getting out of hand with this designator", static_cast(SprayerDDOPObjectIDs::MainDeviceElement), 0, task_controller_object::DeviceElementObject::Type::Device, static_cast(SprayerDDOPObjectIDs::MainDeviceElement))); auto tempPD = testDDOPVersion3.get_object_by_id(static_cast(SprayerDDOPObjectIDs::MainDeviceElement)); @@ -259,7 +259,7 @@ TEST(DDOP_TESTS, ProcessDataTests) DeviceDescriptorObjectPool testDDOPVersion4(4); LanguageCommandInterface testLanguageInterface(nullptr, nullptr); - EXPECT_EQ(true, testDDOPVersion3.add_device("Isobus++ UnitTest", "1.0.0", "123", "I++1.0", testLanguageInterface.get_localization_raw_data(), std::vector(), 0)); + EXPECT_EQ(true, testDDOPVersion3.add_device("AgIsoStack++ UnitTest", "1.0.0", "123", "I++1.0", testLanguageInterface.get_localization_raw_data(), std::vector(), 0)); EXPECT_EQ(true, testDDOPVersion3.add_device_element("Sprayer", static_cast(SprayerDDOPObjectIDs::MainDeviceElement), 0, task_controller_object::DeviceElementObject::Type::Device, static_cast(SprayerDDOPObjectIDs::MainDeviceElement))); EXPECT_EQ(true, testDDOPVersion3.add_device_process_data("This is a very long designator that should get truncated", static_cast(DataDescriptionIndex::ActualWorkState), task_controller_object::Object::NULL_OBJECT_ID, static_cast(task_controller_object::DeviceProcessDataObject::PropertiesBit::MemberOfDefaultSet), static_cast(task_controller_object::DeviceProcessDataObject::AvailableTriggerMethods::OnChange), static_cast(SprayerDDOPObjectIDs::DeviceActualWorkState))); @@ -268,7 +268,7 @@ TEST(DDOP_TESTS, ProcessDataTests) ASSERT_NE(nullptr, tempPD); EXPECT_EQ(32, tempPD->get_designator().size()); - EXPECT_EQ(true, testDDOPVersion4.add_device("Isobus++ UnitTest", "1.0.0", "123", "I++1.0", testLanguageInterface.get_localization_raw_data(), std::vector(), 0)); + EXPECT_EQ(true, testDDOPVersion4.add_device("AgIsoStack++ UnitTest", "1.0.0", "123", "I++1.0", testLanguageInterface.get_localization_raw_data(), std::vector(), 0)); EXPECT_EQ(true, testDDOPVersion4.add_device_element("Sprayer", static_cast(SprayerDDOPObjectIDs::MainDeviceElement), 0, task_controller_object::DeviceElementObject::Type::Device, static_cast(SprayerDDOPObjectIDs::MainDeviceElement))); EXPECT_EQ(true, testDDOPVersion4.add_device_process_data("This is an even longer designator that should get truncated ideally to 128 characters in length but in reality not very many TCs will support this kind of long designator", static_cast(DataDescriptionIndex::ActualWorkState), task_controller_object::Object::NULL_OBJECT_ID, static_cast(task_controller_object::DeviceProcessDataObject::PropertiesBit::MemberOfDefaultSet), static_cast(task_controller_object::DeviceProcessDataObject::AvailableTriggerMethods::OnChange), static_cast(SprayerDDOPObjectIDs::DeviceActualWorkState))); @@ -287,7 +287,7 @@ TEST(DDOP_TESTS, PropertyTests) DeviceDescriptorObjectPool testDDOPVersion4_2(4); LanguageCommandInterface testLanguageInterface(nullptr, nullptr); - EXPECT_EQ(true, testDDOPVersion3.add_device("Isobus++ UnitTest", "1.0.0", "123", "I++1.0", testLanguageInterface.get_localization_raw_data(), std::vector(), 0)); + EXPECT_EQ(true, testDDOPVersion3.add_device("AgIsoStack++ UnitTest", "1.0.0", "123", "I++1.0", testLanguageInterface.get_localization_raw_data(), std::vector(), 0)); EXPECT_EQ(true, testDDOPVersion3.add_device_element("Sprayer", 1, 0, isobus::task_controller_object::DeviceElementObject::Type::Device, static_cast(SprayerDDOPObjectIDs::MainDeviceElement))); EXPECT_EQ(true, testDDOPVersion3.add_device_process_data("Total Time", static_cast(isobus::DataDescriptionIndex::EffectiveTotalTime), static_cast(SprayerDDOPObjectIDs::TimePresentation), static_cast(isobus::task_controller_object::DeviceProcessDataObject::PropertiesBit::MemberOfDefaultSet) | static_cast(isobus::task_controller_object::DeviceProcessDataObject::PropertiesBit::Settable), static_cast(isobus::task_controller_object::DeviceProcessDataObject::AvailableTriggerMethods::Total), static_cast(SprayerDDOPObjectIDs::DeviceTotalTime))); EXPECT_EQ(true, testDDOPVersion3.add_device_element("Connector", 2, static_cast(SprayerDDOPObjectIDs::MainDeviceElement), isobus::task_controller_object::DeviceElementObject::Type::Connector, static_cast(SprayerDDOPObjectIDs::Connector))); @@ -302,7 +302,7 @@ TEST(DDOP_TESTS, PropertyTests) EXPECT_EQ(std::static_pointer_cast(tempProperty)->get_table_id(), "DPT"); EXPECT_EQ(std::static_pointer_cast(tempProperty)->get_device_value_presentation_object_id(), 65535); - EXPECT_EQ(true, testDDOPVersion4.add_device("Isobus++ UnitTest", "1.0.0", "123", "I++1.0", testLanguageInterface.get_localization_raw_data(), std::vector(), 0)); + EXPECT_EQ(true, testDDOPVersion4.add_device("AgIsoStack++ UnitTest", "1.0.0", "123", "I++1.0", testLanguageInterface.get_localization_raw_data(), std::vector(), 0)); EXPECT_EQ(true, testDDOPVersion4.add_device_element("Sprayer", 1, 0, isobus::task_controller_object::DeviceElementObject::Type::Device, static_cast(SprayerDDOPObjectIDs::MainDeviceElement))); EXPECT_EQ(true, testDDOPVersion4.add_device_process_data("Total Time", static_cast(isobus::DataDescriptionIndex::EffectiveTotalTime), static_cast(SprayerDDOPObjectIDs::TimePresentation), static_cast(isobus::task_controller_object::DeviceProcessDataObject::PropertiesBit::MemberOfDefaultSet) | static_cast(isobus::task_controller_object::DeviceProcessDataObject::PropertiesBit::Settable), static_cast(isobus::task_controller_object::DeviceProcessDataObject::AvailableTriggerMethods::Total), static_cast(SprayerDDOPObjectIDs::DeviceTotalTime))); EXPECT_EQ(true, testDDOPVersion4.add_device_element("Connector", 2, static_cast(SprayerDDOPObjectIDs::MainDeviceElement), isobus::task_controller_object::DeviceElementObject::Type::Connector, static_cast(SprayerDDOPObjectIDs::Connector))); @@ -314,7 +314,7 @@ TEST(DDOP_TESTS, PropertyTests) ASSERT_NE(nullptr, tempProperty); EXPECT_EQ(tempProperty->get_designator().size(), 43); - EXPECT_EQ(true, testDDOPVersion4_2.add_device("Isobus++ UnitTest", "1.0.0", "123", "I++1.0", testLanguageInterface.get_localization_raw_data(), std::vector(), 0)); + EXPECT_EQ(true, testDDOPVersion4_2.add_device("AgIsoStack++ UnitTest", "1.0.0", "123", "I++1.0", testLanguageInterface.get_localization_raw_data(), std::vector(), 0)); EXPECT_EQ(true, testDDOPVersion4_2.add_device_element("Sprayer", 1, 0, isobus::task_controller_object::DeviceElementObject::Type::Device, static_cast(SprayerDDOPObjectIDs::MainDeviceElement))); EXPECT_EQ(true, testDDOPVersion4_2.add_device_process_data("Total Time", static_cast(isobus::DataDescriptionIndex::EffectiveTotalTime), static_cast(SprayerDDOPObjectIDs::TimePresentation), static_cast(isobus::task_controller_object::DeviceProcessDataObject::PropertiesBit::MemberOfDefaultSet) | static_cast(isobus::task_controller_object::DeviceProcessDataObject::PropertiesBit::Settable), static_cast(isobus::task_controller_object::DeviceProcessDataObject::AvailableTriggerMethods::Total), static_cast(SprayerDDOPObjectIDs::DeviceTotalTime))); EXPECT_EQ(true, testDDOPVersion4_2.add_device_element("Connector", 2, static_cast(SprayerDDOPObjectIDs::MainDeviceElement), isobus::task_controller_object::DeviceElementObject::Type::Connector, static_cast(SprayerDDOPObjectIDs::Connector))); @@ -333,11 +333,11 @@ TEST(DDOP_TESTS, PresentationTests) DeviceDescriptorObjectPool testDDOPVersion4(4); LanguageCommandInterface testLanguageInterface(nullptr, nullptr); - EXPECT_EQ(true, testDDOPVersion3.add_device("Isobus++ UnitTest", "1.0.0", "123", "I++1.0", testLanguageInterface.get_localization_raw_data(), std::vector(), 0)); + EXPECT_EQ(true, testDDOPVersion3.add_device("AgIsoStack++ UnitTest", "1.0.0", "123", "I++1.0", testLanguageInterface.get_localization_raw_data(), std::vector(), 0)); EXPECT_EQ(true, testDDOPVersion3.add_device_value_presentation("mm", 0, 1.0f, 0, static_cast(SprayerDDOPObjectIDs::ShortWidthPresentation))); EXPECT_EQ(true, testDDOPVersion3.add_device_value_presentation("mm but like with an abnormally long designator to test if we handle it correctly", 0, 1.0f, 0, static_cast(SprayerDDOPObjectIDs::LongWidthPresentation))); - EXPECT_EQ(true, testDDOPVersion4.add_device("Isobus++ UnitTest", "1.0.0", "123", "I++1.0", testLanguageInterface.get_localization_raw_data(), std::vector(), 0)); + EXPECT_EQ(true, testDDOPVersion4.add_device("AgIsoStack++ UnitTest", "1.0.0", "123", "I++1.0", testLanguageInterface.get_localization_raw_data(), std::vector(), 0)); EXPECT_EQ(true, testDDOPVersion4.add_device_value_presentation("mm but basically an outragious designator that makes no sense and should never be used. Ideally his is always 32 chars or less, but using a long string to test byte max.", 0, 1.0f, 0, static_cast(SprayerDDOPObjectIDs::ShortWidthPresentation))); EXPECT_EQ(true, testDDOPVersion4.add_device_value_presentation("mm but like with an abnormally long designator to test if we handle it correctly", 0, 1.0f, 0, static_cast(SprayerDDOPObjectIDs::LongWidthPresentation))); diff --git a/test/tc_client_tests.cpp b/test/tc_client_tests.cpp index eb28c99e..be797c61 100644 --- a/test/tc_client_tests.cpp +++ b/test/tc_client_tests.cpp @@ -806,7 +806,7 @@ TEST(TASK_CONTROLLER_CLIENT_TESTS, StateMachineTests) // Make a test pool, don't care about our ISO NAME, Localization label, or extended structure label for this test // Set up device interfaceUnderTest.test_wrapper_set_state(TaskControllerClient::StateMachineState::Disconnected); - ASSERT_EQ(true, testDDOP->add_device("Isobus++ UnitTest", "1.0.0", "123", "I++1.0", { 0x01 }, std::vector(), 0)); + ASSERT_EQ(true, testDDOP->add_device("AgIsoStack++ UnitTest", "1.0.0", "123", "I++1.0", { 0x01 }, std::vector(), 0)); interfaceUnderTest.configure(testDDOP, 6, 64, 32, false, false, false, false, false); // Now try it with a valid structure label