Automated Typing demo - InterConnected DigiSpark boards.

The Digispark can be configured as a HID Keyboard. Useful for auto testing a typing app.

It has a USB port for the HID and three pins.

There are three pins P0, P1, P2. P1 has an LED so in an output.

We want an ASTABLE - when one end is typing, the other end backs off. Turn the LED on when Typing, if the other end has LED on, back off typing.

----|----|----|----|----|----|----|----|----|----|----|----|

              +---------+       
              |DigiSpark|
    +---------| P2      |==> USB HID keyboard
    | +-------| P1 LED  |
    | |  +----| P0 I/P  |  
    | |  |    +---------+   
    | |  +-- /DISABLE      P0 is used to disable typing  
    | |                    P1 is LED output  
    | |                    P2 is Fast / slow      
    | |  +-- /DISABLE   
    | |  |    +---------+       
    | |  |    |DigiSpark|
    | |  +----| P0      |
    | +-------| P1 LED  |
    +---------| P2 I/P  |==> USB HID keyboard
              +---------+       

----|----|----|----|----|----|----|----|----|----|----|----|

The units type either fast or slow. When TYPING turn on the LED

LED __^---  Start of typing - back off 
LED --v___  GA  invitation to start typing 

There is a deadlock if both ends are not typing and the LED is off.
So run a watch dog timer and pulse LED if it matures to kick other end. 


DigiSpark 1: Text to be typed.

ds1_P0
ds1_P2 connected to ds2_P1
HID_1:


DigiSpark 2: Text to be typed.

ds2_P0
ds2_P2 connected to ds1_P1
HID_2:


combined:


combined_words:


combined_paragraphs:


thoughts

There are two streams to be displayed together.

Options:

Display two lines:- received, transmitted.

Merge characters as they arrive.

Merge Words as they arrive.

Merge ParaGraphs as they arrive.

Add time Markers so split on.

The input needs to be display at least word by word.


Flushed
1:hsgdhsgdhs
			2:khasahsksahk
			
---------------------			
Line1: jwhej kjwejk kjwhejkwle l
Line2: kwh  ek jknmnm ljkljj 
--------------

When Line1 or Line2 get too big flush some text out to the Flushed buffer.