la5nta / pat

A cross-platform Winlink client written in Go
https://getpat.io
MIT License
488 stars 86 forks source link

Support for PACTOR #40

Closed janhaag closed 5 years ago

janhaag commented 8 years ago

@martinhpedersen Well, the title says it all... Is this planned (shouldn't be that bad since the command structure ist quite similar to other TNCs)?

I don't have any experience using GO (though I'm not new to programming), so I'm not sure I can help much with the Implementation, but I should be able to get hold of some older PTCs and possibly a newer one in the not too distant future, all of which can be used for testing.

There's quite a bit of useful info on the SCS website, http://www.scs-ptc.com/en/Downloads.html

martinhpedersen commented 8 years ago

Hello Jan!

(See la5nta/wl2k-go#4 for the main discussion around writing the driver for interacting with pactor modems.)

Yes, pactor support is absolutely a dearly missed feature for Pat.

It is certainly planned, but I haven`t had the opportunity to work on it yet. I do have access to a P4 modem through my local club (LA1B), but I guess it boils down to prioritizing the time spent on various features.

The actual implementation would be part of the transport sub-package under wl2k-go (https://github.com/la5nta/wl2k-go), where all transport drivers and other support libraries live.

A discussion regarding the actual implementation of a pactor driver has already been started over at la5nta/wl2k-go#4, I think that particular issue is appropriate for future discussion around the technical details of interfacing with various pactor modems.

I am very happy to read that you are willing to do some testing with various modems.

Maybe we could start by pinning down which modems/models it's reasonable to target? Do you have any insights as to which models RMS Express supports?


Btw, Go is a language designed to be easy to pick up. Most developers with experience with other C-like languages feel at home with Go after a couple of days of playing around with it :) https://tour.golang.org/ is a great place to start, if you're interested.

janhaag commented 8 years ago

Well, I have RMS Express running under Wine, so I certainly can take a look... It supports all SCS PTC models from PTC II up as well as the third-party Pactor 1 capable TNCs Timewave PK-232 and its successor, the DSP-232. According to the SCS material all of their PTC models II and up have essentially the same set of commands, with the newest models having some extensions for Pactor 4 support. This would mean that SCS PTC II and up should be a reasonable initial target for Pactor support, with older models and the Timewave TNCs falling into the 'nice to have'-category, which would essentially require adding two new transports: Pactor 2 for narrowband operation and Pactor 3 (which automagically turns to Pactor 4 on a P4 in its default compatibility mode) for wideband operation.

Currently I can get hold of a PTC+ (which is unsupported by RMS Express), an even older original PTC and possibly a PK-232 (I don't know whether it has the necessary firmware updates, though). I also know some people I could ask for access to a PTC II, but no guarantees there.

As far as Go programming is concerned, yes, I found tour.golang.org and I rather like the concept... The language feels more 'python-ish' than C to me, but that's just fine. It's going to take some time before I'm comfortable writing code for publication in it, though.

martinhpedersen commented 8 years ago

We need to do a new release of Pat before macOS Sierra (issue #48) and I doubt I'll have time to implement and test PACTOR support before this deadline, unfortunately.

Moving this issue out of v0.2.0 milestone.

jpronans commented 7 years ago

Hi, found this project yesterday. Have PTCII-ex to test with, going to get it plugged in and back on the air again.

akopac commented 7 years ago

I'm in for Pactor II pro (firmware version III) support. We've talked before Martin. PAT's come a long ways. Good work Martin and Team.

harenber commented 7 years ago

I wrote a WA8DED "driver" in Go which seems to work ok with my PTC-IIUSB (only USB tested, as the Bluetooth board on the PTC is broken meanwhile). Currently I am trying to integrate that into Pat (with the help of Martin, of course :-) ).

DC7IA commented 6 years ago

PACTOR modems can controlled through serial terminal, so pat could simply send commands via serial connection. A list of commands can be found in the manual: http://www.p4dragon.com/en/Downloads.html

I don't know how I could be of much use for that, but I'd be happy to do some testing if someone decides to implement this.

Some commands as an example:

"MYCALL DC7IA" sets the call sign to DC7IA "CONNECT LA1J" connects LA1J.

Doesn't seem to complicated to implement.

73

harenber commented 6 years ago

Hi,

commands alone don't help, to transfer binary data you have to use the WA8DED mode and you have to implement that into pat. I have first successful connections made already, the code needs some fine tuning before it can be released.

73 Torsten DL1THM

akopac commented 6 years ago

Keep up the good work guys

harenber commented 6 years ago

Just to let you know: I just sent and received the first messages successfully through the air using a SCS PTC controller. Some code cleanup is still needed, but the biggest step has been taken to support SCS PTCs (PACTOR and PACKET) in Pat. :-)

73s Torsten DL1THM

DC7IA commented 6 years ago

That sounds great! Keep us up to speed. :)

Maybe this is of interest..? -> https://github.com/kptc-radio/kptc

73

akopac commented 6 years ago

Wow This is Awesome!!!!!!!! I've been waiting several years for this to happen. Keep up the good work

Andy KG6AMH PTCII Pro Runnig Pactor II Serial

On Sun, Nov 5, 2017 at 10:36 AM, harenber notifications@github.com wrote:

Just to let you know: I just sent and received the first messages successfully through the air using a SCS PTC controller. Some code cleanup is still needed, but the biggest step has been taken to support SCS PTCs (PACTOR and PACKET) in Pat. :-)

73s Torsten DL1THM

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/la5nta/pat/issues/40#issuecomment-341994653, or mute the thread https://github.com/notifications/unsubscribe-auth/AJulRYH4KUe40ZnDKisqqXnM7dI_9dZLks5szgAygaJpZM4Iglc1 .

--

Andy Kopacwww.linkedin.com/in/andykopac http://www.linkedin.com/in/andykopac

martinhpedersen commented 6 years ago

Short progress report

@harenber has offered to maintain and continue developing a ptc-driver for Pat. We both agreed that the best approach would be to keep the source code in a separate repository for the time being.

Torsten have created the project https://github.com/harenber/ptc-go, and I am currently working on integration with Pat.

The ptc-go driver does not currently support P4 Dragon or listen-mode, but this is something we will be looking at after the first Pat release with support for PTC-II.

akopac commented 6 years ago

Unbelievable!!! This is awesome. Thanks so much. I look forward to trying it.

On Sat, Feb 17, 2018 at 3:02 AM, Martin Hebnes Pedersen < notifications@github.com> wrote:

Short progress report

@harenber https://github.com/harenber has offered to maintain and continue developing a ptc-driver for Pat. We both agreed that the best approach would be to keep the source code in a separate repository for the time being.

Torsten have created the project https://github.com/harenber/ptc-go, and I am currently working on integration with Pat.

The ptc-go driver does not currently support P4 Dragon or listen-mode, but this is something we will be looking at after the first Pat release with support for PTC-II.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/la5nta/pat/issues/40#issuecomment-366433776, or mute the thread https://github.com/notifications/unsubscribe-auth/AJulRflJ6NZSadatMH--9xfl0uviDfR1ks5tVrHEgaJpZM4Iglc1 .

--

Andy Kopacwww.linkedin.com/in/andykopac http://www.linkedin.com/in/andykopac

martinhpedersen commented 6 years ago

Feedback from people that are currently testing the branch feature/ptc-support with a PTC modem are appreciated. Thank you!

DC7IA commented 6 years ago

Feedback from people that are currently testing the branch feature/ptc-support with a PTC modem are appreciated. Thank you!

Hi Martin, I'd love to test it, but I can't find any documentation. What do I need to do to get it working?

Maybe someone can add a bit of documentation to the wiki to get more feedback?

73

harenber commented 6 years ago

@dc7ia there is some documentation at my repository: https://github.com/harenber/ptc-go/blob/master/README.md

harenber commented 6 years ago

I updated the documentation, biggest change is a section about installing a version of Pat with PACTOR support. Hope it's useful.

martinhpedersen commented 5 years ago

I've merged all changes into develop now, and pulled the latest changes from harenber/ptc-go (@harenber).

Testers should build from develop from now on. Thanks!

martinhpedersen commented 5 years ago

FYI: I've updated develop to include the latest revision of github.com/harenber/ptc-go (master).

martinhpedersen commented 5 years ago

The feature is now included in v0.7.0. Let's open new issues to track addition of new modems (Dragon P4 etc).

captcha1 commented 4 years ago

Is it possible to connect to the modem via a TCP or UDP connection ? Could be useful for the "SCS PTC-IInet" modem (or use "socat" to connect a serial port to TCP or UDP). "Airmail" has this feature (discussed on this page, near the bottom : https://sailmail.com/wp-content/uploads/2016/02/smprimer.htm).

guitarpicva commented 4 years ago
UDP is probably a poor choice as there is no guaranteed, ordered
delivery.

A TCP option would be VERY welcome however.

On 2/11/2020 00:09, captcha1 wrote:

  Is it possible to connect to the modem via a TCP or UDP
    connection ? Could be useful for the "SCS PTC-IInet" modem (or
    use "socat" to connect a serial port to TCP or UDP). "Airmail"
    has this feature (discussed on this page, near the bottom : https://sailmail.com/wp-content/uploads/2016/02/smprimer.htm).
captcha1 commented 4 years ago

Regarding the idea of connecting to a pactor modem via TCP, I just noticed that the pactor-4 dr-7800 modem has an optional wired Ethernet "ser2net" module ...

guitarpicva commented 4 years ago

Some not-necessarily-helpful thoughts, but may spark brainstorming.

What I do in modem controller programs is to encapsulate all of the modem data management and then create a raw TCP socket who's only job is to shuttle data to send or received data. It can be raw text if a text only scenario, or I will use a simple check-summed framing mechanism to be able to denote the payload type/size/configuration in order to send binary data or for other uses, like soft-ARQ. For ham radio, being text, it's a simple solution that allows outside programs to make use of the modem without having to recreate the inevitable one-off data formats used in each modem. FDIGI does something very similar with it's FLARQ socket. Anything decoded is sent on that socket, and anything you put onto that socket is transmitted by FLDIGI in it's current CODEC mode.

So you can get in to scenarios with a PACTOR modem whereby you put it into broadcast mode and then you can "chat". Or if it's in ARQ mode, you simply buffer that data for the existing link to send, also a very nice way to do chat, but a very simple way to send "formal messages" such as email without an infrastructure such as WINLINK in the background. This is the basis for many commercial HF email programs in use today.

The real value of Pactor is the ARQ obviously, so widening the horizon of Pat beyond that of only Winlink is valuable in my mind. YMMV, and the project scope is not mine to direct. Just offering some food for thought.