I can pretty much warn you against Simma Software.
It's two guys Jake and Patrick iirc. I'm not saying the software doesn't do what it is supposed to, but from experience their CAN drivers are extremely basic. You can do it yourself, or at least someone on UpWork could do it in at worst 1/10th the cost ($5k for a CAN driver iirc). There is nothing special, no complex buffering, or retries or detecting errors beyond the most basic. It's written "cleanly" enough, but very very generic. Not at all worth the money. They're tell you that you need their CAN driver to use their other layers, that's bullshit. Their CAN driver just takes in a pointer and dlc, and etc, their other layers are designed to just call send and receive functions, and use them, but not even in a clever pointer to a function way like networkTransport.send(), but generic can_transmit() and you just make sure you have that function.
As to the higher level stuff like J1939. I'm 10000% certain you can look on Github and find something just as good. I was looking to them for some SAE-J specs and ended up learning a lot more writing my own than paying them an ungodly amount.
Nothing I've seen from them is complex enough to warrant the cost. It all works, but they go no extra steps. You'll find no smart configurations, or memory management, no RTOS hooks, just plain jane code. Seriously go find a Pakistani or Indian group on Upwork, they'll ask for $20/hr and give you something they basically already wrote. You'll then probably get something you actually want. Or get the SAE papers and write it yourself and really know what it's doing.