Tigers,
Wasn't my intention to belittle the Arduino. I've used the Arduino for another fairly complex project. This is evidenced by my post in the general automation section on the Arduino Lawn irrigation project. You're right, just can't compare the two. It's like comparing apples and oranges.
2. I don't see the huge limit in not having the TCP/IP connection: you can have the arduino connected to your lan and access it via your wi fi or cabled lan while it talks to the OPII via serial. What would the TCP do that the "normal" arduino can't?
There's absolutely nothing wrong with that configuration. Few years back, I wrote a commercial app called Fidoh. This app had one variation where it installed a TCP/IP server on a laptop which was connected serially to a non ethernet enabled controller such as the Omni. Thus, allowing anyone to remotely connect to any non ethernet enabled controller. This variation is written entirely in native C. I will be glad to give you or anyone else all the source code to this variation for whatever use.
3. If you send a wrong message to the OPII you DO get a response in the form of an acknowledge not OK message in return so you can debug the connection with the arduino serial even if it's text only (I did it myself). Of course it's still much harder than a step by step debug in visual studio, but not that much if we think of the serial communication.
Well, again, I think we're comparing apples to oranges. I believe you're using the serial protocol which is the
Omni Link Protocol which is indicated by your using header byte value 0x5A. Whereas I am using the TCP/IP protocol which is the
Omni Link II Protocol. This is evidenced by my using a header byte 0x21. In your case , you would either receive an ACKNOWLEDGE message or a NEGATIVE ACKNOWLEDGE message. In my case, I would either receive an ACKNOWLEDGE or nothing at all. This only occurs when initially establishing an new open session and the next step when attempting to establish a secure connection. Once a secure connection is established, I then get either an ACKNOWLEDGE or NEGATIVE_ACKNOWLEDGE
A quote from the Omni Link II Protocol document...
PROTOCOL RULES
If the controller receives a packet that is not a valid Omni-Link II application-level packet (i.e., missing or invalid
“message type”), the controller quietly discards the packet without a reply.
I presume the controller does this to prevent an outside hacker from discovering that the controller is at the other end of the link. If the hacker gets a bad packet response, then the hacker knows (s)he has connected to a device. Without a response, the hacker would probably assume that nothing is connected at the other end and move onto another target. In your case, a serial hardwired connection does not pose this problem.