Addresses issue #191 - Add number of available messages to MSGS?, HB, and MSG response#192
Conversation
There was a problem hiding this comment.
This seems to work well, however if I have several messages awaiting me, (three, for example), when I pick up the first message, there is no "+2" at the end of the message pickup. However, if I pick up one of three, then " QUERY MSGS" it will indicate a "+2". Shouldn't each successive message (until the next-to-last one, of course) always indicate a "+X" messages remaining after a message retreival?
Also, possibly unrelated, if I transmit "@ ALLCALL QUERY MSGS" or send an HB, the messages awaiting notifies me properly. However, if I pick up one message (so now two more are left in the queue), then transmit "@ ALLCALL QUERY MSGS" there is no reply at all. If I then transmit " QUERY MSGS" I will get a reply of messages awaiting, indicating a "+2".
73,
-Joe-
K0OG
P.S. I noticed that the 160m frequency was changed. Was this intentional?
|
@Joe-K0OG The +n is only appended to the query and HB responses, not to every each message response. Do you think we should add that? It's easy enough to do, just a fahrvergnügen question. Your missing ALLCALL query response is weird. I don't think I changed anything that would do that. |
I think it would be a good thing to add the +n to all responses, except the next-to-last one.
I suspect that the ALLCALL issue is unrelated, but thought I should mention it in case it might be related, or is an otherwise easy fix in the same area of code. 73, |
cb848f4 to
4b4691e
Compare
|
@Joe-K0OG OK, I have added the pending count to the message response. |
I changed that for 2.5.0 because everybody was using it anyway, and it gets it 3.5kHz above the FT8 dial freq. |
There was a problem hiding this comment.
Curiosity question: Why is this done?
There was a problem hiding this comment.
Just for testing the HB response. It's not actually related to group messaging, just messaging in general, maybe it should have gone in initializeDummyData.cpp. This is just sort of my personal testing sandbox.
|
We still have two problems that need to be addressed:
Here is a log of what is happening from a test between two stations. The receiving station, picking up stored messages, is K0OG. The station storing messages for K0OG is KA0LOS, and has four outgoing message in the mail box. This is what K0OG sees when querying for messages (I added some explanatory notes with the "<==="): Two things you can see from this:
73, |
|
@Joe-K0OG OK, I'll look at the count logic. Can you test the ALLCALL bug in the main branch to see if it's happening there too? I can't think of anything that I did here that would affect that. |
Yes, I'll test that on main later this AM and let you know the result. |
@rruchte Yes, Rob, the problem with ALLCALL QUERY MSGS only working once is the same in main - you didn't break it! ;) Does this part need to be moved to a new issue, or shall we keep it here? 73, |
|
@Joe-K0OG Awesome, thanks for checking that. Can you create a new issue for it? If 2.6.0 takes a while to release, I wouldn't want to hold up a fix for that by lumping it in with a new feature. |
I think 2.6 may take a bit, I'm still waiting on feedback on the API changes from kf7mix and others. Maybe some time after April 15? |
Yes @rruchte I'll create a new issue. 73, |
I would expect that 2.5.x will have a pretty long lifespan and there is no rush to release 2.6.0 2.4.0 was a "get started" release, 2.5.0 came out pretty fast after that with major changes switching the name back to JS8Call. And of course, two patch releases that fixed complaints and/or bugs. I think I would recommend going for annual minor point releases, or major releases, to give more time to thoroughly vet the code and issues. Maybe shoot for something like late summer/early fall. If glaring bugs are fixed it's now pretty trivial to patch the current stable and push a patch or maintenance release. For instance, the recent PSK Reporter fix could be considered a bug, current stable could be patched and push a 2.5.3 release for that, which many people would appreciate. Patch releases are one thing. But I think it's bad practice to fire too many feature releases out the door too fast. Depending on what development takes place in the mean time, we may decide to go to a major release (3.0) on the next one, which IMO should've happened when the old Fortran decoder was scrapped and it went to C++. |
4b4691e to
5607d68
Compare
|
@Joe-K0OG good catch on the count sent during transmission, I forgot that "mark as read" occurs in a callback after successful transmission. That's something I actually added, so I should have known better 😅. Fixed now. |
@rruchte Yes, Rob, it's fixed now so that when you pick up messages in order, the countdown is correct. However, there is an edge case: What if I don't pick up messages in order? If I have four messages waiting, and I pick up the second before I pick up the first, that first one is left "dangling" in terms of the counter. Here is a real-world example with four messages queued: I realize that this is an unlikely "edge" case, so if you choose to not address it, no big deal as I think 99+% of the time people will pick up their messages in order, as displayed by the holding station. 73, |
|
@Joe-K0OG so this is an issue with the lookahead NEXT MSG ID, not the +n, right? The lookahead picks the next message ID available after the one being transmitted, should we rethink that? What we have now is an implementation of the linked list concept. |
@rruchte Rob, I was thinking it would count the number of remaining message in the mailbox, then list the message number for the one at the top of the list, rather than just incrementing the message number for the last one read. Is that too much trouble to do? If so, not a big deal in the real world, but it does leave the messaging vulnerable to someone missing a message if they read them out of order (most likely due to a typographical error). 73, |
|
@Joe-K0OG The next message ID works differently when retrieving a message than it does when querying messages. When querying messages, the ID returned is the first available message. When retrieving a message, the next ID is the next available message after the one that is being returned. The +n count does not take the message position into consideration, it's the total count of available messages. So you could jump into the linked list of available messages in the middle, pull all of the messages until the end, and still have a count that indicates the first half of the list the you didn't pick up. We could rework this, we just need to know what the new requirements are. |
@rruchte What I'm thinking is this:
Does that make sense? Is it worth the effort to rewrite code to do this? I think so, but I'm not the one having to rewrite code, ha ha! 73, |
|
@Joe-K0OG I think that would only require changing ">" to "!=" in a couple of SQL queries. |
See, that's why YOU'RE the man! I might think I know what needs to be done, but don't know HOW to do it! Ha, ha! I hope it's that simple. 73, |
…es to MSGS?, HB, and MSG response Adds an indication for the number of available messages to the response to the MSGS? query, HB response, and message response in addition to the ID of the next available message. Changing NEXT MSG ID logic to send first available ID instead of next in list when sending messages
5607d68 to
717a253
Compare
|
Ha! Yup, that should be it. Give that a try and see if it's what you're wanting to see. |
That's it @rruchte !!! Regardless of message pick-up order, the correct number of messages waiting and the correct next-available message number are displayed. Flawless! Thanks Rob, I think we can go with this one and close it now. 73, |
|
Fixes #191 |
Adds an indication for the number of available messages to the response to the MSGS? query, HB response, and message response in addition to the ID of the next available message.