This is going to be a short post, but I need to rant. In my opinion, Mono is really well implemented. They do a good job throw not implemented exceptions when the code isn't implemented under it's framework. However, they completely missed the fact that mark/space parity is not implemented in MonoPosixHelper.dll. My RS485 communication doesn't work on the Raspberry Pi but does under Windows. Luckily I started down the right path, think that 9th address bit, aka parity, was my issue. I had to dig all the way down into the C code to find this gem:
case Mark: /* Mark */
/* XXX unhandled */
break;
case Space: /* Space */
/* XXX unhandled */
break;
I don't care that these aren't implemented. I would not be surprised if
I'm one of the first, if not the first person, to run into this issue.
I'm just wish that would have thrown an error telling me, "Hey, mark and
space aren't implemented, do something else". Now the question is, do I
change that in C code and recompile Mono, or just hack around it with
setting Odd/Even every single sent byte.
Discussions
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.