Since I'm retiring soon, and have both full frame (6D and 1DX Mk II) and APS-C (T3i) cameras, I might be able to help with this once I get my head around the code...
I have very little experience with C#. But I was able to look at the code and not be blown away too bad. I did download the code and pulled it into Visual Studio and tried to compile it. The first things I found is that there are a lot of older dot net frame works in it that visual studio didn't like. I downloaded the latest sdk from canon and replaced some of the dlls and libraries that were obvious. This resolved the canon sdk not being the correct version of dot net according to visual studio.
My plan is to try to resolve those issues first, then to have a fully compiled version of the ascom driver. Then, because I could not spot where it was setting the focal length and pixil size for the mark II. I was going to just going to plug my camera in and walk through the code in a debug session to try and get an idea of the flow and values being returned and decide what to do from there.
tjay noted that the pixil size and focal length was not being returned from the current version of the driver that is compiled. So, by walking the code, hopefully I can see if that has changed in the current sdk. From what I can tell, the code hasn't been changed in 2 years. At least that is what it looks like on github.
If the sdk still doesn't return the pixil size and focal length. At least at this point I should know where it is building that information to return to NINA. And at that point, a better resolution can be made for correcting the manual coding for that. I really am nt inclined to use a database for storing this information for all the cameras. And my thought process is that the database would have to be constantly maintained for new cameras by anyone that updated the code. I am leaning more towards an xml file, or some type of formatted file that can be updated by whoever has a camera that is not there. The bad thing about doing it that way is the camera information in the files would not stay current for distribution. A sql lite db would be the easiest to use if we went the route of a database. Very light weight, no overhead or very little, easy to update with SQLiteStudio. And it could be downloaded with the driver or separately for any changes to the information stored within.
I am still am testing new equipment which I still need a couple things to complete before I feel like I am back to imaging full time again. I need a flattener. And I just have been having lousy nights lately because my equipment is old. But I would really like to get my Mark II up and running even if it isn't modified for specific targets. And I don't want to use anything but NINA, so the driver can't be ignored by me.
Dan