A train diagnostics system comprising: an on-board control unit linked by a local area network to interfaces to train systems and sensors, a wireless interface for transmission of diagnostics data from the on-board control unit and a ground-based server adapted to receive said diagnostics data and process it to generate diagnostic reports; the wireless interface is adapted to transmit the diagnostics data in a plurality of channels including: a live data channel, and a backfill data channel for data not successfully transmitted in the live channel, and the wireless interface is adapted to automatically hand over from the live channel to the backfill channel a message for which a positive acknowledgement has not been received when transmitted on the live channel, and the wireless interface is adapted to automatically assign data to the backfill channel if wireless communication is not available in real time, characterised in that the on-board control unit is adapted to manage transmissions on the backfill channel with repeated attempts in a non-cyclic manner, in which: a next message is sent immediately when a positive acknowledgement is received, the message is moved back to a queue if an acknowledgement is not received during a timeout period, or a negative acknowledgement is received indicating invalid data, the server includes an event processing engine for maintaining a live session for each of a plurality of trains, and for maintaining a current state for each session; and wherein the event processing engine is adapted to monitor received signals from the on-board control unit and to determine a latest known state of each of a plurality of parameters being monitored, and to perform data processing to evaluate performance of the on-board train sensors and systems, and, the server event processing engine is adapted to perform analysis of the backfill data in any one of a plurality of configured mechanism, including: wait for a period of time after the data is received before it is analyzed, to provide sufficient time for all of the backfill data to have been received before it is analyzed, and run once periodically and analyze all of the backfill data received since it last ran. an on-board control unit linked by a local area network to interfaces to train systems and sensors, a wireless interface for transmission of diagnostics data from the on-board control unit and a ground-based server adapted to receive said diagnostics data and process it to generate diagnostic reports; the wireless interface is adapted to transmit the diagnostics data in a plurality of channels including: a live data channel, and a backfill data channel for data not successfully transmitted in the live channel, and a live data channel, and a backfill data channel for data not successfully transmitted in the live channel, and the wireless interface is adapted to automatically hand over from the live channel to the backfill channel a message for which a positive acknowledgement has not been received when transmitted on the live channel, and the wireless interface is adapted to automatically assign data to the backfill channel if wireless communication is not available in real time, characterised in that the on-board control unit is adapted to manage transmissions on the backfill channel with repeated attempts in a non-cyclic manner, in which: a next message is sent immediately when a positive acknowledgement is received, the message is moved back to a queue if an acknowledgement is not received during a timeout period, or a negative acknowledgement is received indicating invalid data, a next message is sent immediately when a positive acknowledgement is received, the message is moved back to a queue if an acknowledgement is not received during a timeout period, or a negative acknowledgement is received indicating invalid data, the server includes an event processing engine for maintaining a live session for each of a plurality of trains, and for maintaining a current state for each session; and wherein the event processing engine is adapted to monitor received signals from the on-board control unit and to determine a latest known state of each of a plurality of parameters being monitored, and to perform data processing to evaluate performance of the on-board train sensors and systems, and, the server event processing engine is adapted to perform analysis of the backfill data in any one of a plurality of configured mechanism, including: wait for a period of time after the data is received before it is analyzed, to provide sufficient time for all of the backfill data to have been received before it is analyzed, and run once periodically and analyze all of the backfill data received since it last ran. wait for a period of time after the data is received before it is analyzed, to provide sufficient time for all of the backfill data to have been received before it is analyzed, and run once periodically and analyze all of the backfill data received since it last ran.