Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/MEAT-Inc/SharpWrap2534

A C# Based J2534 API Created by Zachary Walsh (2021). SharpWrap2534 is an approach at trying to build and deploy and easily consumable, user friendly, J2534 API wrapper in C#.
https://github.com/MEAT-Inc/SharpWrap2534

can-bus canbus j2534

Last synced: 3 months ago
JSON representation

A C# Based J2534 API Created by Zachary Walsh (2021). SharpWrap2534 is an approach at trying to build and deploy and easily consumable, user friendly, J2534 API wrapper in C#.

Awesome Lists containing this project

README

        

# **SharpWrap2534 - The Ultimate J2534 Wrapper Suite**

### **What is SharpWrap2534?**
SharpWrap2534 is an approach at trying to build and deploy and easily consumable, user friendly, J2534 API wrapper in C# (along with some nifty extension packages that add support for more features). While there's a good number of these out there, SharpWrap stands out from the rest for a number of reasons. Some of the key features of SharpWrap are:
- Both Version 04.04 and Version 05.00 APIs are supported completely!
- All J2534 calls are setup in the background leaving the user with minimal configuration needed to consume this library
- Setting up a new instance of a J2534 device can be done in **ONE LINE OF CODE**.
- All configuration of the J2534 Device and DLL objects are done when a new SharpSession is started.
- When a SharpSession is built, a DLL is built based on the name provided and then the next possible device is automatically loaded up as well.
- Any exceptions thrown inside the J2534 instances are always returned out to the user for easy debugging.
- A total of (2) two device instances can be generated at one time. By forcing this design pattern, it's nearly impossible to try and build instances of devices which are impossible.
- Like the device instances, only a set number of J2534 Channels can exist at a time to prevent losing track of them.
- If Logical channels are needed, then they are built as well.
- Supports the hidden DrewTech API for device locating and initalization processes
- These methods include the PTGetNextDevice() PTGetNextCarDAQ() PTScanForDevice() and more.
- Each of these methods are mapped using their pointer delegates for unmanaged access and when called, are passed through an API Marshall to convert them into managed types.
- For more information on each of the different packages inside this repository, go into each directory according to the name of the package. There's a README for each of them inside there.

---

### **Current Extensions**
- As of now, there's a collection of 4/5 extensions ready for the SharpWrapper package.
- They're all located in the Extensions folder of this repository and each have their own requirements.
- As of 1/31/2023, we've got the SharpAudoId, SharpExpressions, SharpPipes, and SharpSimulator packages ready to run. Just grab them from NuGet like you'd pull in the SharpWrapper package.

---

### **Development Setup**
- NOTE: As of 2/17/2023 - I've closed down the readonly access for anyone to use. If you want to use these packages, please contact [email protected] for an API key, and someone will walk you through getting into this package repository. This decision was made after realizing that while the key was readonly and on a dedicated bot account, it's not the best idea to leave API keys exposed. And since making these projects public, it was only logical to remove the keys from here.
- If you're looking to help develop this project, you'll need to add the NuGet server for the MEAT Inc workspace into your nuget configuration.
- To do so, navigate to your AppData\Roaming folder (You can do this by opening windows explorer and clicking the top path bar and typing %appdata%)
- Now find the folder named NuGet and open the file named NuGet.config
- Inside this file, under packageSources, you need to add a new source. Insert the following line into here
```XML

```
- Once added in, scroll down to packageSourceCredentials (if it's not there, just make a new section for it)
- Inside this section, put the following block of code into it.
```XML




```
- Once added in, save this file and close it out.
- Your NuGet.config should look something like this. This will allow you to access the packages inside the MEAT Inc repo/workspaces to be able to build the solution.
```XML























---

### Questions, Comments, Concerns?
- I don't wanna hear it...
- But feel free to send an email to [email protected]. He might feel like being generous sometimes...
- Or if you're feeling like a good little nerd, make an issue on this repo's project and I'll take a peek at it.