Attached is a revised version, with some small revisions and a few more critical ones which are intended to help us all with comprehension and understanding. Please feel free to change them. I did this with Review and Tracking Changes on.

I found Jon's technical Json messaging description very very helpful to my "schema" comprehension, which got me over the "Separation of Plugins" issue, an understanding of the plugins from an earlier time. Quite obviously, Jon has been busy with additions to the Plugin API messaging which I was quite unaware of. My apologies. The OD plugin parameters do interact, and hopefully the user will understand how now.

Thankyou NAV and Jon

I leave it to you both to add this to the Plugins description in the User Manual, unless you'd like me to do so (please suggest where) after your review.

Good Job! We learn something useful about Json messaging in Opencpn too!

I have built both
watchdog_pi-1.9041-ov4.2-win32
ocpn_draw_pi-0.4.671-ov4.2-win32

carefully, deleting all of the build directory except opencpn.lib, build.bat and in the case of ocpn_draw files cairo.lib, expat.lib and WxSvg.lib
then built them, the record of the build is attached, there are some new warnings.

I believe these plugins work insofar as the language files (if they are working) and it is not due to the process that they do not work.) - I will upload if someone wants to test to see if the language files are working right (might be helpful for later development).

I have also done some further testing, and have a few comments.

1. Under Watchdog, Edit Alarm how involved is it the change "Guard Zone" to "AIS Guard Zone"? This would be clearer to me and others without reading manuals, but if it means additional work for language files that is difficult and involved, I'd like to put it in the Tracker for next time. - I have not tested AIS alarm yet, this time.

2. When there is an alarm anchor inclusive the Name and Description aren't showing.

3. When there is an alarm exclusive distance the Name and Description aren't showing.

Rick,
I have not touched the messaging API, although I did start a thread here suggesting that it needs looking at. On slower machines I think there may be a need for true 'directed' messages, i.e. it only goes to the destination and not be broadcast, and there is probably a need for queueing and asynchronous processing as this would allow messages to be discard that are 'old' and avoid processing and would help with time critical processing in that it would not need wait on the completion of the current message stream.

Also, when I started to build the interactions between OD and WD I noticed that there was no 'schema' to define a message, it was up to the plugins to workout something. To help me I implemented a partial 'schema' which contained information needed to ensure you had verifiable messages, that they were complete and that they had enough information to positively identify the sender, receiver and the particular message, if needed. It seemed like overkill when I first did it, but with the introduction of AIS guard zones and the WR usage it seems less so. If we more to a more comprehensive messaging system it will easily adapt. The message content would need to be more formalised as in creating a true 'schema' definition for the 'header' (critical message navigation and quality checking) that all users would adhere to.

But, for now, it seems to work OK for the uses I have put it too.

Anyway, the use of the messaging allows true separation of functions. I think we have to be careful not to over think the interactions or we will tie ourselves in knots. It may be better to take a 'big picture' look, i.e. remove the fine detail, go back to basics and think in a simple manner. You 'can' create quite confusing interactions, but if you do it simply you end up, to me in english and with my inside knowledge, with straight forward interactions. So use exclusion boundaries for exclusion alarms, use Inclusion alarm with GUID for inclusion boundaries. I just did not want to 'force' this type of interaction as not all users think the same as me, so there is the option to use whichever graphic makes the most sense to the user for the alarm they want to set. I cannot even begin to think about all the possibilities users could come up with.

Jon

Quote:

Originally Posted by rgleason

....

I found Jon's technical Json messaging description very very helpful to my "schema" comprehension, which got me over the "Separation of Plugins" issue, an understanding of the plugins from an earlier time. Quite obviously, Jon has been busy with additions to the Plugin API messaging which I was quite unaware of. My apologies. The OD plugin parameters do interact, and hopefully the user will understand how now.

Rick,
This is a minor change and I have done it for patch 1.9.042. Of course it does involve a change to the pot file and therefore will need translation. I will put the pot file up shortly.

Quote:

Originally Posted by rgleason

1. Under Watchdog, Edit Alarm how involved is it the change "Guard Zone" to "AIS Guard Zone"? This would be clearer to me and others without reading manuals, but if it means additional work for language files that is difficult and involved, I'd like to put it in the Tracker for next time. - I have not tested AIS alarm yet, this time.

I have just tried this and they do show up for me in the message box. In the 'Watchdog' dialog only the name shows up. I found an error when you did copy/paste for the GUID or typed it in where it did not retrieve this information. This is fixed now.

Quote:

2. When there is an alarm anchor inclusive the Name and Description aren't showing.

When I try this it is working for me, see attached screen shot (ignore text I was using a 'current' inclusion boundary for the test). If you do not have a name the GUID should show.

Quote:

3. When there is an alarm exclusive distance the Name and Description aren't showing.

Rick,
Attached a Word document with a slightly changed user explanation of the relation between OD and WD and additionally the technical explanation as given by Jon.

There is one thing that bothers me. And it is for several weeks. Is that no one has ever written clearly defining what a "Boundary" in the sense that I understand in relation to the operation of OD.
For You JonGough, it may be obvious. Probably because the exact meaning of the word is contained in the word. But I have no French word to translate this concept! The translation is offered to me by the automatic translator Google is "limite" or "boundary". Ie "Border". But obviously that's not it.

And how is it in other languages ?

So, I propose you:
"A boundary is formed by a plane in which a closed line is plotted on itself This line can be called a border (or limit) This boundary defined two parts of the plan.. Inside and outside."

In other words, a "Boundary" under OD, is a complex object composed of 3 sub-objects:
- Interior
- Outdoor,
- Border.

From there, I can ask a question NAV: You often use the word "zone" in your document. But this is misleading. We must be more specific and say:
- "Inside", when it's inside you speak.
- "Outside", when it is outside you speak.

The price of this lack of precision is that your text is actually extremely difficult to translate ... And also to understand.

Another consequence of this lack of precision, is that the text contains contradictions. It is said that the role of the interpretation given to the inside and outside can be free. In reality, it is influenced by a perceived "pre-established" with the role of hatching.

There is one thing that bothers me. And it is for several weeks. Is that no one has ever written clearly defining what a "Boundary" in the sense that I understand in relation to the operation of OD.
For You JonGough, it may be obvious. Probably because the exact meaning of the word is contained in the word. But I have no French word to translate this concept! The translation is offered to me by the automatic translator Google is "limite" or "boundary". Ie "Border". But obviously that's not it.

Gilletarom:
The best definition of boundary that fits this case I found is

boundary - a line determining the limits of an area

What do you call, in french, a line on a map outlining a city or town limit that designates the area inside the line controlled by the city or town and outside by the adjacent municipalities? This is an example of a boundary.

Gilletarom,
You are correct that a boundary, in OD, is a closed path in 'two' dimensions (ignoring the curvature of the earth). There is an inside and an outside. The actual boundary is a line drawn between boundary points, it has no width only a direction and length. To make it easy for humans to deal with, myself included, I added width to the boundary line, then to help, colour and style (dash, dot, etc.). The 'width' of the boundary line has no effect on determining if a point is inside or outside the boundary.

The original 'boundary' was just a concept that was useful in drawing closed areas and it was of one type only as it had shading/hash on the inside. Over time this has changed to include shading on the outside signifying a different type of 'boundary'. This was extended again to have a closed path with no shading/hash. Now, even in english, it is difficult to find words that fully explain 'inside'/'outside'/'neither' shading and the expected usage of these. So I picked 'Exclusion'/'Inclusion'/'Neither' believing that if you shaded the inside then you probably did not want to enter, if you shaded the outside you probably wanted to say within and if you did not have shading it just marked an area on the chart.

Now we introduce WD and a use of boundaries for alarms. Up until this time it was purely a drawn artefact that had meaning only to the user. Now there is a need to apply meaning which can be used in another plugin. For simplicity I carried over the naming convention used in OD, so that if you marked an 'Exclusion' boundary, you would also use that term in WD.

But, when you think about the drawn graphics and the way users may want to use them, it becomes more complicated. In my usage if I want to stay out of an area I will use an 'Exclusion' boundary in both OD and WD. However, if you are racing and being watched via AIS/radar, you may want to mark areas around certain points that you MUST enter to continue to be in the race, you may want to know when you are about to enter so that you can plan turns etc. so an 'Exclusion' alarm for an 'Inclusion' alarm starts to make sense.

With hindsight it 'may' have been better to call them 'zones' rather than 'boundaries'. As they say hindsight is ALWAYS 20/20, but foresight is a little less clear. This is the wiki link for 'bounary' in english:https://en.wikipedia.org/wiki/Boundary
Many of the definitions talk about dividing areas, space, usage, which is really what the boundary in OD does. I looked in google translate and got the following:
la limite

limit, boundary, bound, borderline, end, length

les frontières

boundary, confines

la borne

terminal, boundary, landmark, stone

Not being a French speaker I cannot comment on these. I suspect there are issues in other languages, but.....

I was hoping with the separation of locale catalogs and the ability to have the same word in two plugins translate correctly to their particular meaning some of these issues would be resolved.

Gilletarom,
You are correct that a boundary, in OD, is a closed path in 'two' dimensions (ignoring the curvature of the earth). There is an inside and an outside. The actual b.......... would be resolved.
Jon

I appreciate this text. I think we are beginning to understand us.

Just a thought. in the text of NAV, it is question of "flag" which, for a boundary, are attached either inside or outside, or anywhere.

If we agree, when the flag is raised, there is a grid, if the flag is not raised, there is no grid.

You will understand why, for several weeks, I hope that in "OD" items "Exclusion", "Inclusion" and "Neither" be replaced by "Grid Inside", "Grid outside" and "No grid". They are neutral concepts that have no other function than to say the state flags.

And obviously, in WD, one can choose items that are not neutral. That's the strength of your two plugins.

This leaves developers and users a great freedom of interpretation of the meaning attributed to the grid.

Note : Note, but not to "agenda" that we could have, in OD, "Grid ON" or "Grid OFF" for each of the two parts (inside and outside). So 4 possibilities. But we do currently have only 3 available.

Boundary: A closed polygonal path constructed of boundary points and lines in 'two' dimensions with an inside and an outside. A boundary is planar, not warped, ignores the curvature of the earth, and has no z dimension.

Question:
Can a boundary be defined by two boundary points and no area (or inside zone)?
Must a boundary have at least three boundary points?
-I like to think of it as a simple sheep enclosure.

Rick,
I have made some further changes to the document to clarify/correct it. I hope that it is understandable.

As for what to do with the content of it now, I am not sure. Perhaps it should be added as an appendix to both WD and OD documentation.

I think there is a need for some of this information to be made easily available to developers to help formulate a better way of handling interactions within the OCPN suite. Perhaps a 'messaging' section in the developers manual.