-
Notifications
You must be signed in to change notification settings - Fork 25
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
connected mode via socket interface #865
base: develop
Are you sure you want to change the base?
Conversation
Removed trailing '\n' for command socket interface as most clients only expect the \r.
…l as the reference to socket_interface_manager. Not sure if intention, but nothing was returned prior on line 69 of service_manager.py Started work to store some info we will receive from CMD client. Not sure where to store this data yet. We will need to make an array of several callsigns the client will listen for, and add an exception for them within the "is_frame_for_me" method in frame_handler.py. Before, all instances of socket_interface_manager were None within the actual command handlers, and it's created P2PSessions, as nothing was passed for it. When I passed the SocketInterfaceHandler to the CommandSocket as the socket_interface_manager, it was still invalid to use within P2PSessions because it was referencing self.socket_interface_manager.command_server as a CustomThreadedTCPServer, and not a CommandSocket type, so the command_handler was an invalid reference. Adding the hasattr seems to make sure the command_handler is accessible. Not very sure about this solution, but I can now access the command_handler methods from within each session using self.socket_interface_manager.command_server.command_handler. When connecting to another station using a "CONNECT" command in the command socket, the other station will not reply to the P2P_CONNECTION_CONNECT packet unless lines 221/222 are present within the connected_irs method. Not sure if this is intentional, or if this was only partially complete due to a move to use an ARQ connection. For now the connection command still calls P2PConnectionCommand, so need to find out when ARQ comes into play.
@modernham i suggest before working on specific features like the callsign stuff, we should maybe ensure, the basic transmission is working. So just sending data to a specific callsign, provided bis CONNECT command. Additional stuff like ignoring not registered callsign could be added afterwards. |
Regarding ARQ inside the connection- my idea was, sending single small data bursts, acknowledging them via ACK burst. As soon as we have data, which doesn't fit into a single burst, we are calling the existing ARQ protocol also used for message transmission, which is doing then the entire work. By doing it like this, I wanted to have a trade off between reliability and efficiency for smaller data, but also having a reliable protocol for bigger data. |
…ke sure the handlers are accessible. Started work on getting the client to accept several callsigns as connection methods, and passing the correct connecting one to the receiving client. For now, storing some variables that need used later within the SocketInterfaceHandler.
Hi, I merged changes from develop into this branch - so don't forget doing a git pull before committing for avoiding issues :-) |
…ke sure the handlers are accessible. Started work on getting the client to accept several callsigns as connection methods, and passing the correct connecting one to the receiving client. For now, storing some variables that need used later within the SocketInterfaceHandler.
…ats working for now is catching command socket for IRS and ISS. Pushing data on ISS side to data socket is working as well. But we are still trying to get data on IRS.
…nected-mode # Conflicts: # freedata_server/p2p_connection.py # freedata_server/socket_interface_commands.py
…ats working for now is catching command socket for IRS and ISS. Pushing data on ISS side to data socket is working as well. But we are still trying to get data on IRS.
… via socket on IRS.
This PR contains a socket interface and a connected mode ( in development ). It is under development and not working, yet. The release date is unknown. This PR should help tracking progress and getting a better feeling and understanding of this feature.