Prosody data communications Protocols: raw tx

This protocol implements a transmitter of uninterpreted digital data. Since it is only a transmitter, it only uses the output half of a channel. It is typically used either with HDLC encoding to implement a protocol such as V.120 or with SYNC encoding to put an arbitrary data stream on a timeslot. When used with HDLC the input half can be configured for raw rx with HDLC to provide a duplex link.

API function behaviour

This should be read in conjunction with the generic data communications documentation.

smdc_channel_config()

You must use #include "smdc_raw.h" to get the appropriate declarations.

The protocol value is kSMDCProtocolRawTx.

Only on Prosody version 1: There is no configuration for this protocol, so the config_data pointer should be null (0) and the config_length should be zero.

Only on Prosody version 2 (TiNG): The configuration for this protocol is optional, if not required the config_data pointer should be null (0) and the config_length should be zero. The speed will default to 64000bps.

If required, the config_data pointer must point to one of these structs:

	typedef struct smdc_raw_config_parms {
		tSM_INT speed;
	} SMDC_RAW_CONFIG_PARMS;

'speed' is the data rate in bits per second. This must be one of the standard speeds: 8000, 16000, 32000 or 64000. The speeds other than 64000 use ITU I.460 rate adaption, that is only the first 1, 2 or 4 bits of each octet are used.

This protocol can use these encodings: SYNC, ASYNC, and HDLC.

The firmware module datatx must have been downloaded.

smdc_line_control()

[note] not useful - no initial connection procedure and no RTS.

The kSMDCLineCtlCmdSetPrefixSuffix command is not supported by this protocol.

smdc_line_status()

[note] 'link_status' is not useful since it is always connected.

smdc_tx_status()

[note] 'flow' is not useful since there is no flow control mechanism.

'status' never reports empty.

smdc_tx_control()

The only notification implemented is kSMDCTxCtlNotifyOnCapacity.

When setting the capacity, it is necessary to specify a value one greater than the value required. i.e. to get notified when space is available for at least 32 bytes, set the capacity to 33 or greater.

smdc_rx_status()

This function is not applicable since it only applies to the input half of a channel.

smdc_rx_control()

This function is not applicable since it only applies to the input half of a channel.

smdc_rx_data()

This function is not applicable since it only applies to the input half of a channel.

smdc_tx_data()