Communications Command & Control

This description is of a computer program. It acts as a command centre for transceivers. It is written entirely in 'C' using only the X11 windowing facility: no external graphics or widget libraries are necessary. It may be compiled from the source code and run on any Unix-type operating system e.g. Linux, BSD or System V.

To run this program you must first compile it from the source code. Create a new directory in a convenient place. Download the file com.zip. Move it to your new directory. Unzip the com.zip file. The zip file contains the source code com.c plus 12 data files. Open com.c in a text editor. I prefer gedit because of its good source highlighting. Open a terminal. Do a 'cd' to your new directory. The compiling and running instructions are near the beginning of the source listing. If you happen to be running 64-bit Linux, you may be able to skip the compiling process by simply entering the command './com' in a terminal window from the directory containing the files you unzipped.

This program creates, and runs within, a 500 x 400 pixel window. Its content is dis­tributed across 8 tabs. The different tabs are selected by clicking on their respec­t­ive tab buttons across the top of the window area. Following is a description and oper­ating instructions for each of the 8 tabs. It is useful to have the program run­ning alongside the web browser while reading the following text.

This program is not a transceiver controller. It does not attempt to replace any of the normal front panel controls of a transceiver. The control of a specific transceiver is far better done via its own front panel. The only aspect of what could be termed 'trans­ceiver control' done by this program is to request that a transceiver tune to a speci­fied frequency. The only aspect of what could be termed 'transceiver monitor­ing' done by this program is to input the signal strength returned for the requested frequency. The purpose of this program is to help the user organise and perceive a full picture of his activities within the radio spectrum.

The SCOPE Tab

The main feature of the SCOPE tab is the fre­quency graticule at the top right. It repre­sents a 300 kHz stretch of the spectrum. Each pixel along the graticule represents 1 kHz. The hori­zontal frequency scale at the bottom of the graticule shows which 300 kHz stretch of the spectrum is currently dis­played. The graticule is 120 pixels high and represents signal stre­ngth at the same scale as shown for the S-meter box to the left of the graticule. A scope trace of signals within the given 300 kHz stretch of the spectrum are displayed in green on the graticule.

SCOPE Tab of Communications Command & Control program originated and written in 'C' by Robert John Morton YE572246C

The signals shown on the scope trace are not 'live'. The purpose of the scope trace is not to show actual signal strength at the time. It is to give a sense of the varying level of expected average occupancy of the spectrum. Obviously there is no single receiver able to cover contiguously the stretch of the spectrum from 0 to 300 kHz. To experiment with Very Low Frequencies [VLF] it is necessary to construct several very specialised receivers. I think that best practice would be to construct a series of receivers, each covering an octave of interest: that is, from a given frequency to double that given frequency.

For instance, if you are interested in listening to the Alexanderson Alter­n­ator transmissions on 17.2 kHz every 1st of July, perhaps you should con­struct a receiver to cover from 10 to 20 kHz plus some kind of tuned loop aerial to pick up its magnetic vector. What this program can do is issue the command to listen on 17 kHz. An adjunct to this program will then select which receiver should be used, switch to it and command it to listen on that frequency. You will then have to adjust your receiver's front panel controls to fine-tune it to 17·2 kHz.

The idea of the SCOPE tab is to be able to select and search specific radio bands. The first step in this process is to select the type [or usage] of the band you wish to search. A list of band types appears in the upper left of the SCOPE tab. You simply click on the band type you want. The clicked band type then highlights and a list of bands of this type appears in the lower panel beneath the frequency graticule. Click on any band name in this list to display the frequency stretch of the band on the frequency graticule. The official boundaries of the selected band are marked on the graticule by a yellow box. Many bands are more than 300 kHz wide. In this case, several 300 kHz stretches are marked with the band name, each followed by a number indicating which part of the band is displayed in ascending order of frequ­ency.

Moving the mouse horizontally across the graticule causes the frequency at the mouse pointer [MOUSE FREQ:] to be displayed above the graticule on the right. The anticipated signal strength at this frequency, as shown on the scope trace, is dis­played on the S-meter to the left of the frequency graticule. Clicking the left mouse button selects this frequency for listening [LISTENING ON:] and displays it above the graticule on the left. Clicking the LISTEN button at the bottom centre of the tab illuminates it and sends an "Audio ON" signal to the receiver. Clicking the LISTEN button, when it is illuminated, dulls the button and sends an "Audio OFF" signal to the receiver.

The signals shown in green on the frequency graticule are stored in a file called 'scope.dat'. This file contains exactly 30,000 bytes of data. Each byte represents the signal strength [in the range 0 to 120] over the 1 kHz bandwidth at the fre­qu­ency [in kHz] corresponding to the byte's position within the file. For example, Byte Number 198 within the file gives the signal strength across a 1 kHz bandwidth cent­red on 198 kHz. The signal strengths shown in this demonstration version of the program were compiled into a single file from many separate scans of different bands made using an AR86000 scanner. The signal data has been enhanced by software to provide a more meaningful presentation. The AR86000 has a maximum scan resolution of 2 kHz over small scans with even less resolution for wider scans. Eventually, I would like to construct a scanner plus associated input software with a 1 kHz resolution capable of generating the file 'scope.dat' in its entirety. Ideally, I would like it to automatically re-scan the spectrum each day of the week on a rolling basis so that an up to date picture is always available for this program.

The SCAN Tab

The purpose of the SCAN tab is to facilitate scanning of the frequencies on which a part­icular broadcaster transmits. The panel on the left displays a list of the broad­casters on file. The list is long and can be scrolled using the mouse wheel. A part­icular broadcaster is sel­ected by clicking on that broadcaster's name. That name highlights in bright white and the list of frequencies on which that broadcaster transmits appears in the panel at bottom right underneath the frequency graticule. The first frequency in the list is highlighted.

SCAN Tab of Communications Command & Control program originated and written in 'C' by Robert John Morton YE572246C.

A 'GetFrq' [Get Frequency] command is sent to the appropriate receiver to tune to the highlighted frequency. The part of the spectrum 150 kHz either side of the high­lighted frequency is displayed in the frequency graticule with the signal at the high­lighted frequency displayed in bright yellow. The name of the broadcast band with­in which the highlighted frequency lies is shown above the graticule on the right and its bounds are marked on the graticule itself by a yellow box.

To listen to the highlighted signal, click on the LISTEN button in the row of buttons along the bottom of the tab. This sends an "Audio ON" signal to the receiver. Click­ing the LISTEN button, when it is illuminated, dulls the button and sends an "Audio OFF" signal to the receiver.

When a broadcaster transmits on more frequencies than can be displayed in the frequencies panel, the list of frequencies can be scrolled sideways using the mouse wheel. You can click on any frequency in the list to listen on that frequency. Clicking the NEXT or PREV buttons, in the row of buttons along the bottom of the tab, causes the next or previous frequency in the list to become highlighted for list­en­ing. You can also initiate a progressive scan through all a broadcaster's frequ­encies by clicking on the SCAN button and halt the scan by clicking on the STOP button.

The HAMS Tab

Apologies. I know the word "ham" when used to refer to an amateur radio enthus­iast can, in some contexts, be seen as a little derogatory. I have used it because it is short and thereby suffices well as a Tab Name for my program.

It is useful for a radio amateur or short wave listener to maintain a working list in a file of the hams with whom he has or seeks contact. This program uses such a list. It is a simple text file called hams.txt. To be read-in and used by this program, how­ever, it must follow the simple but strict format, as given at the head of the file itself. The first entry in 'hams.txt' should be you. This will be taken to be the 'base station'.

The left-most button at the bottom of this Tab is marked REGEN. Clicking this button causes the program to re-import the ham data from 'hams.txt', reformat it, compute each ham's distance and bearing from your base station and store it all in a data file called 'hams.dat' for use within the program.

HAMS Tab of Communications Command & Control program originated and written in 'C' by Robert John Morton YE572246C.

The ham data is displayed as a scrollable list in the tab window. There is one line per ham. To select one of the hams on your list, click on his information line. The line will become high­lighted in white. Any other previously selected ham will auto­matically become de-selected. By default, when you first enter this tab, the NAME button is bright. This makes your hams appear in alphabetical order of their names. If you click the C'SIGN button, it will go bright and the NAME button will go dull. The list will then appear in alphabetical order of call sign. Click on one of the ham's data lines.

Now if you click the LISTEN button, the program sends a message via 'stdout' to your transceiver, telling it to tune to the frequency on which this ham listens for calls. It then sends a second message telling it to turn on the audio. Now you can swing across to your transceiver to listen to him or call him. Clicking on the LISTEN button when it is bright simply sends a message to your transceiver to turn its audio off.

A 'notes' file about the selected station can be created and accessed by pressing the NOTES button. This causes the program to issue a system command to the default text editor 'gedit' to open a text file whose name is the call sign of the selected ham: e.g. PP1VSB___.txt. Note that the file name is padded out to 9 characters using underscore characters. I don't think there are any call signs longer than this and it keeps the programming simple. You can write as much as you like in this file using the opened text editor and it will always be immediately retrievable and editable when you have this particular ham selected [highlighted] in the HAMS tab. When you have finished reviewing or editing a ham's notes file, simply close the text editor.

The NETS Tab

The concept of the fractal network, in the context of this essay, is of a potentially global communications network, which comprises a large number of independent nodes. Nodes may join and leave the network at will, without seriously affecting the overall network to any great extent.

The term 'fractal' comes from the idea that each node of the network acts like an independent atom of valency 5 within a complex-dynamical environment. As such, it connects to 3 or 4 fairly local nodes + 1 or 2 intermediate or remote nodes. It thereby connects as a 'small-world' network, which enables each node to establish a communication session with any other node in the world over a route requiring only a small number of hops.

Every terminal in the network can communicate with any other if both agree that they wish to communicate with each other. Every terminal also has the obligation to be a node, passing on data from a previous to a subsequent node along a route from an originator to a destination.

Inter-node communication is by radio. Each node is equipped with a standard set of transceivers covering LF to Quiet Band. The different characteristics of each band is suited to different aspects of communication. Quiet Band gives short range high data rate. VHF, HF, MF and LF give progressively longer reach at progressively slower data rates. Furthermore, each band has characteristics that suit different purposes and aspects of communication.

The glorious advantage of this kind of network is that its medium of transmission is natural and does not rely on corporate, multinational or sovereign infrastructure.

LINK Tab of Communications Command & Control program originated and written in 'C' by Robert John Morton YE572246C.

The upper 2/3 of this tab displays the data pertaining to the 5 nodes that make up a part­icular fracnet. Up to 5 fracnets may thus be constructed. The number [0 to 4] of the frac­net, whose nodes are currently display­ed, is shown in white at the top left of the display. You switch between the 5 different fracnets [0 to 4] using the NET1, NET2, NET3, NET4 but­tons at the bottom of the tab. For example, clicking on the NET1 but­ton causes the node data for fracnet number 1 to be displayed. When you click a dull button it goes bright. Any previously bright button becomes dull.

If you click on a button that is already bright, it goes dull so that none of the NET buttons is bright. In this case, the data for fracnet number 0 [zero] is displayed.

Below the fracnet data are 3 extra buttons arranged vertically. Clicking the REGEN button causes the program to regenerate its node data from the input text file nodes.txt. If you wish to add, delete or modify nodes data, you do so by editing this file in a text editor. Simply follow the instructions at the head of the file and adhere strictly to the format of the existing lines. This file does not need to contain all the nodes in the world. You need only the nodes that make up your own fracnets, plus all the nodes with which you need or wish to communicate. The '+' sign is optional for latitudes and longitudes.

Clicking the AUTO button causes the program to generate the currently selected frac­net automatically. It looks to see in which directions from your base node most of the other nodes are located. It lists all the nodes in order of increasing distance from the base node for each degree of bearing. It then chooses the nearest node for each of the 5 most populous bearings and installs them as members of your currently selected fracnet. This is probably the best that can be reasonably done automatically.

Ideally, however, you should select the members of your fracnets manually. Thus you can include criteria that the program cannot know. For example, if one of your fracnets works exclusively on the middle HF range, you may wish to select different node distances according to which time of day you communicate and the current phase of the sunspot cycle. For VHF, you may need to take account of the geo­graph­ical relief in different directions from your location. Obviously, there are many such criteria to which the program is not privy, particularly if you frequently move the location of your base station.

The CLEAR button clears any marked [highlighted] nodes from the nodes list, which I will now explain.

NET->LIST Sub-Tab of Communications Command & Control program originated and written in 'C' by Robert John Morton YE572246C.

Click the LIST button [at bottom far left]. A scrol­lable list of the full set of available nodes ap­pears as shown above. Your base station is the first node in the list. The other nodes appear in ascending order of distance from your base station. You may then consider and manually select the nodes that you wish to be members of your cur­rently selected fracnet. To select a node, simply click on its data line. Its line of data will then turn white, indicating that it has been selected. Select up to 5 nodes. The program will only look at the first 5 selected nodes in the list.

You may scroll the list up and down by using your mouse wheel.

Having selected the 5 nodes you wish to comprise your selected fracnet, click the BUILD button. The program then constructs the fracnet using the selected nodes. The original fracnet data display screen then reappears showing the data pertaining to the nodes of your newly built fracnet. Click the CLEAR button to clear the marked nodes from the list.

There is an alternative way, which you may prefer, of selecting the nodes for build­ing a fracnet.

NETS->GRAPH Sub-Tab of the Communications Command & Control program originated & written in 'C' by Robert John Morton YE572246C.

Now click the GRAPH button. A graph app­ears as illustrated above. The horiz­on­tal scale covers the 360 degrees of bearing from the base node [one pixel per degree]. The vertical green lines indicate the number of nodes that exist within each degree of bearing. Up to 25 nodes are indicated. Be­yond 25, the line indic­ates 25 but turns red. You should see a blue vertical line at bearing 000. To select a partic­ular bear­ing, click any­where on the graph at the horizontal posi­tion for that bearing. Above, is shown the case where the user has clicked on bearing 109.

Click on the green line at bearing 223. The vertical blue line then appears at bear­ing 223. If you can't quite click on the exact position you want, clicking on the '<' and '>' buttons, to the left of the graph's horizontal scale, allow you to to inch one degree at a time leftwards or rightwards respectively.

This enables you to select the best bearing for each of the 5 nodes of the fracnet you are building. Suppose you have selected bearing 223 as a bearing on which you would like to have a node for your fracnet.

NETS->GRAPH->LIST sub-sub-tab of the Communications Command & Control program originated and written in 'C' by Robert John Morton YE572246C.

Now click the LIST button [sixth button down on the vertical column of buttons]. The scrol­lable list of nodes on bearing 223 appears as shown above. Nodes are listed in ascend­ing order of distance from your base node. Only one node can be selected. If, after select­ing a node, you click on another one, the pre­viously selected node becomes de-selected. You select a node by clicking on its data line, whereupon it will turn white. You can de-select a selected node by clicking on it, whereupon its data line will become dull green again. Now select the node you want for this bear­ing.

Now click the bright LIST button. It becomes dull again and the graph is re-displayed. On the vertical column of buttons are 4 buttons labelled NODE1, NODE2, NODE3, NODE4. If they are all dull [grey], then the node you just selected from the list will be node zero. Click the NODE1 button. It becomes bright. Now go through the procedure again of clicking on a bearing on the graph pertaining to the next bearing on which you wish to have a node for your selected fracnet. Then click the LIST button again and select one of the nodes on the list and then click the bright LIST button so it be­comes dull and the graph is re-displayed. Go through the same procedure for NODE2, NODE3 and NODE4. I shall stick with NODE0 [i.e. none of the NODE buttons is bright, as shown above].

NETS->GRAPH->BRGS sub-sub-tab of Communications Command & Control program originated and written in 'C' by Robert John Morton YE572246C.

Having selected the 5 nodes you wish to com­prise your selected fracnet, click the BUILD button. The program then constructs the frac­net using the selected nodes. The main frac­nets display screen then reappears showing the data pertaining to the nodes of your newly built fracnet. Click the CLEAR button to clear the marked nodes from the list. Now click the GRAPH button again and then the BRGS but­ton at the top of the vertical column of but­tons. Five vertical yel­low lines appear. These mark the bearings of the 5 nodes that you sel­ected for your new fracnet.

Click on the bright GRAPH button to return to the main fracnets screen. Now click in the area of the data pertaining to one of the 5 nodes of the selected fracnet. The node's name/number and its associated block of data gain a dark grey shaded background. This node is thus now selected and consequently you may initiate a link to this node. How to do this is described later in the section on the LINK tab.

To establish your relationship with the global network, you must now use the LINK tab to initiate a connection to each of the 5 nodes of your selected fracnet. Then you will be able to use the XFER tab to communicate with any destination node within the global network.

I have only gone through the procedure for building one fracnet. To build the other 4 fracnets, you need to click on its appropriate button NET1, NET2, NET3, NET4 across the bottom of the NETS tab.

The MOON Tab

By default, when first entering the MOON tab, the TRACK selector sub-tab is dis­played. However, to return to it from another sub-tab, you need to click on the TRACK button.

The TRACK Sub-Tab

MOON-TRACK sub-tab of the Communications Command & Control program originated and written in 'C' by Robert John Morton YE572246C.

All the necessary data pertain­ing to the moon appears live in real-time, includ­ing the azimuth and elevation comm­ands to maintain an antenna pointed directly at the moon. The azimuth and elevation [in radians] is output directly to antenna steer­ing servos. A fully illustrated description of the tracking software and its program coding in 'C' is avail­able at this link. The purpose of this moon-tracking antenna steering prog­ram is to facilit­ate direct long-range point-to-point radio links using moon-bounce.

While the moon is above the horizon sufficiently high for moon-bounce communi­ca­tion, the moon's elevation is shown in green and the "Tracking the moon..." message is displayed in the message field below. When the moon is below the horizon or not sufficiently high to facilitate moon-bounce communication, the moon's elevation is shown as zero in red and the red message is displayed as shown below.

MOON-TRACK sub-tab of the Communications Command & Control program originated and written in 'C' by Robert John Morton YE572246C.

To establish moon-bounce communication, you first need to select a radio frequ­ency band and also the type of modulation to be used. This is done in the BAND tab as shown below.

MOON->BAND sub-tab of the Communications Command & Control program originated and written in 'C' by Robert John Morton YE572246C.

Click on the BAND button at the bottom of the tab window. Then click on the vertical buttons for the modulation type and band you wish to use. Now click on the SCAN button at the bottom of the right-hand vertical column of buttons. This will cause a command to be sent to the appropriate receiver to scan for the quietest frequency currently available for your down-link channel. During the scan, the yellow message is displayed as shown below.

MOON->BAND sub-tab of the Communications Command & Control program originated and written in 'C' by Robert John Morton YE572246C.

If and when the best [quietest] channel is found, the green message is displayed, as shown below, showing the frequency of the quietest channel

MOON->BAND sub-tab of the Communications Command & Control program originated and written in 'C' by Robert John Morton YE572246C.

If, for any reason, the receiver is unable to locate a quiet channel or if you attempt to find a channel when the moon is down, the following message is displayed in red.

MOON->BAND sub-tab of the Communications Command & Control program originated and written in 'C' by Robert John Morton YE572246C.

It is now necessary to inform the person you are trying to contact about the frequency of your down-channel and request from him an up-channel frequency on which he will receive transmissions from you. You send this request via the band's standard calling channel. To do this, you need to click on the CHAN button at the bottom of the tab window.

If you do this before you have found a quiet down-channel, or the moon is down, the down-frequency will be shown as zero. Attempting a CALL in this case will result in an error message, as shown below.

MOON->CHAN sub-tab of the Communications Command & Control program originated and written in 'C' by Robert John Morton YE572246C.

If a down-channel frequency has been acquired, it will be shown in the CHAN tab window, as shown below.

MOON->CHAN sub-tab of the Communications Command & Control program originated and written in 'C' by Robert John Morton YE572246C.

If you receive a reply with an appropriate up-channel frequency, the up-channel frequency [UP_FREQ] will be displayed along with a confirmatory message, as shown below.

MOON->CHAN sub-tab of the Communications Command & Control program originated and written in 'C' by Robert John Morton YE572246C.

You now have up and down channels for moon-bounce communication. Now go to the XFER tab to exchange data or engage in a digital voice call.

If the remote station does not answer with an up-channel frequency for you, a red error message to this effect is returned. If no down-channel frequency has been acquired, a red error message to this effect is displayed instead, as shown below.

MOON->CHAN sub-tab of the Communications Command & Control program originated and written in 'C' by Robert John Morton YE572246C.

The GEOID Sub-Tab

MOON->GEOID Sub-Tab of the Communications Command & Control program originated and written in 'C' by Robert John Morton YE572246C.

Click in the GEOID button [bottom left] of the tab window. A list of the established geoids appears. At the top left is a means of sel­ect­ing whether a specific geoid is used or whether the program automatically selects the best geoid to use according to the loca­tion of the base node. Here you can click on MANUAL or AUTOMATIC to highlight the op­tion you prefer. By default, the geoid used is selected manu­ally. This is the better op­tion for most situa­tions in which base nodes don't tend to be re­located often. The default manually selected geoid is the GRS80, which is the same as the WGS84.

The XFER Tab

You can exchange data or conduct a digital voice call with the radio amateur:

  1. currently selected on the HAMS tab,
  2. currently selected as the destination on the currently selected fractal net,
  3. for whom you have set up moon-bounce channels on the MOON tab.

To do this, you need to click on the XFER tab, which appears below.

The XFER Sub-Tab of Communications Command & Control program originated and written in 'C' by Robert John Morton YE572246C.

Now click on the DEST button to cause a full list of available network nodes to be displayed on the right of this tab window, as shown below.

XFER->DEST Sub-Tab of Communications Command & Control program originated and written in 'C' by Robert John Morton YE572246C.

Select a destination node to which you wish to send your file or make voice contact by clicking on its data line in the list. Its data line will then turn white. Any previ­ously selected node will then automatically become de-selected. Then click the bright DEST button. The list disappears and in its place is shown the full data for the destination node you have selected, as shown below. You must do this before you can send or receive data or make voice contact.

XFER->RECV sub-tab of Communications Command & Control program originated
and written in 'C' by Robert John Morton YE572246C.

Notwithstanding, before you can actually transfer data or make a voice call to the destination, you need to establish a link-level connection to the destination or, at least, to the first node in the network route. To do this, you must go to the LINK tab. So now, please click on the LINK tab at the top of the window, whereupon the LINK tab will be displayed as shown below.

The LINK Tab

The LINK tab accommodates the task of making a link-level connection between your base node and the currently selected HAM, one of the 5 nodes that are members of one of your 5 fracnets, or the currently selected HAM via moon-bounce. The sequence of stages involved in establishing a link-level connection with a destination station are listed on the lower left of the LINK tab window, as shown below.

The LINK tab of the Communications Command & Control program originated and written in 'C' by Robert John Morton YE572246C.

The default setting is to make contact via the FRACNET, as shown by the high­lighted FNET button in the column of buttons in the middle of the window. If you want to contact your destination station directly [for instance, via HF], you can click the HAMS button. The HAMS button then becomes bright and the FNET button be­comes dim. If you want to contact your destination station via moon-bounce, click the MOON button. The HAMS button then becomes bright and the other buttons be­come dim. However, for moon-bounce to work, the moon must be up sufficiently to facilitate moon-bounce and you must have already established a down-channel and up-channel using the MOON tab, as already described. For the moment, let's carry on with an FNET contact.

The panel at the top left of the tab window shows the number [0 to 4] of the cur­rently selected fracnet, the number [0 to 4] of the selected node within it, the location of that node and its current connection status. If the node's current status is INACTIVE then the CONNECT button should be dim and the list of LINK SEQUENCER stages should all be shown in grey.

Click the CONNECT button. It will become bright and the connection sequence will begin. The message line will tell which process is currently taking place. As each stage in the sequence is reached, its name will turn green. The receiver will be switched on and then tuned to the appropriate frequency or channel. It will then seek a carrier signal from the selected remote node.

LISSAJOUS phase in the LINK tab of the Communications Command & Control program originated and written in 'C' by Robert John Morton YE572246C.

Once the remote carrier has been acquired, the Lissajous precessing ellipse app­ears. This shows the gently drifting phase differen­ce between the far carrier and a local parser signal. The LISTEN button brightens and the program endeavours to achieve a quadra­ture phase LOCK between the parser and the remote carrier. Once quadrature synchron­ization is achieved, the next time the drifting ellipse becomes circular, it stabilises: it stops drifting and becomes static. In the demon­stration ver­sion this process is a SIMULation: LIVE operation isn't implemented.

CONNECTED phase in the LINK tab of Communications Command & Control program originated and written in 'C' by Robert John Morton YE572246C.

Once a stable circle is achieved, the link sequencer phase modulates the signal with a 16-segment bit frame. Once this is stab­ilised, the sequencer moves to the DATA CHANNEL OPEN stage at which a full pattern of idle mode data bits is modulated onto the bit frame, giving the pattern shown above. The remote node's status is then shown, in bright green, as CONNECTED. The LINK and MODU buttons are merely for use in ver­ifying the correct working of the sequencer, in circ­umstances such as after the associat­ed parts of the program have been modified.

Back to The XFER Tab

Click the XFER tab at the top of the window to go back to the XFER tab.

XFER->RECV sub-tab of Communications Command & Control program originated
and written in 'C' by Robert John Morton YE572246C.

This tab enables you to conduct a digital voice or data transfer session with a re­mote node in a world-wide fractal network. The stages of the session-level transfer protocol are shown at the lower left of the tab win­dow. See the adjacent screen shot. Each stage in the list is accomplished in sequence from bottom to top. The latest stage is high­lighted in bright green. Previous stages are in dark green. Stages not yet reached are in grey. The message line tells what process is currently taking place. Two types of session are facilitated: VOICE streaming and DATA transfer.

If the session were initiated by clicking the VOICE button, the VOICE button turns yellow and the TRANSFER PROTOCOL goes through the first six stages to establish session-level communication with the remote [destination] node. Once the TRANSFER INITIATED stage has been reached, the VOICE button turns bright green and a mes­sage advises you that the voice stream is now open. You can now con­verse with the operator at the remote node. You terminate a VOICE session by clicking the RESET button.

If the DATA button is bright and you then click on the SEND button, the TRANSFER PROTOCOL again goes through the first six stages to establish session-level com­munication with the remote [destination] node. Once the TRANSFER INITIATED stage has been reached, however, transfer of data starts automatically and the graphic at the top left of the window shows the progress of the transfer. The arrow shows the direction of transfer: from you outwards to the first network node, which is one of the 5 members of your fracnet. Once all the data has been transferred, the session advances to the TRANSFER COMPLETED stage.

If the DATA button is bright and you then click on the RECV button, the TRANSFER PROTOCOL again goes through the first six stages to establish session-level com­munication with the remote [destination] node. Once the TRANSFER INITIATED stage has been reached, however, transfer of data starts automatically and the graphic at the top left of the window shows the progress of the transfer. The arrow shows the direction of transfer: from the first network node, which is one of the 5 members of your fracnet, inwards to you. Once all the data has been transferred, the session advances to the TRANSFER COMPLETED stage.

For outbound transfers, the graphic starts 'full' and gradually 'empties' thus show­ing the proportion of the data that still remains to be sent. For inbound transfers, the graphic starts 'empty' and gradually 'fills up' thus showing the proportion of the data that has so far been received.

The PAUSE button enables you to pause a data transfer. To continue a paused trans­fer, click the SEND or RECV button again as appropriate. The RESET button cancels whatever session is currently taking place, even if paused.

Data to be sent must be placed beforehand in a file whose name comprises the destination's network address and the port number on which the destination listens. The file's name is thus a 12-character HEX string. The file name extension can be whatever character string you want it to be. Files to be sent are placed beforehand in a subdirectory of the 'com' directory named 'send'. Data received during a transfer is placed in a file whose name comprises the 8-character HEX network address of the sender followed by a 4-character HEX serial number. Files sent and received are generally compressed '.pgp' files containing the intentional data in one large file with qualifying information in a second small file.

Under intended use, a reasonably large number of files would be placed in the 'send' directory for distribution to the various destinations to which they are addr­essed. The sending processes would then be initiated as a single batch job. This job could normally take place unseen, but could be monitored using the [XFER] tab. Similarly, the program can be set up to listen for incoming data transfers and re­ceive the data into files which it would place in the 'recv' directory. This facility is not implemented in the demonstration version of 'com.c'.

The I/O Tab

I/O Tab of Communications Command & Control program originated and written in 'C' by Robert John Morton
YE572246C.

This tab displays the last 16 messages sent by the program via 'stdout' and re­ceived by the program via 'stdin'. It is useful for check­ing and monitoring messages exchanged by the program and a transceiver. It also dis­plays the messages exchanged by the base node and the destination node in a voice or data session conducted by the XFER tab. The screen shot shows the messages ex­changed with the dest­ination node during a file transfer session. The SCAN & STOP but­tons are live copies of those in the SCAN tab. Thus, a scanning session can be started and stopped from here.

This enables you to watch the exchange of messages between the program and the transceiver to see that communication between them is working correctly. The STDIN and STDOUT buttons respectively enable input from 'stdin' and output to 'stdout'. The STDIN button is not enabled in this demonstration version of 'com.c'. When the STDOUT button is bright, all output messages are sent to 'stdout', which is usually the terminal window within which the program was launched. The CLEAR button clears the currently displayed messages to make a clean start for a new session.


© 21 October 2020, 28 May 2022 Robert John Morton