# # ******* Sequential 2-line Messages ******* # sub seqdis { my $seqdisParam = $_[0]; =head2 Sequential 2-line Messages =over 4 =item #* Split a long text into 2-line segments which are #* displayed sequentially. Text is split at spaces #* between words. optionally screen is cleared after #* last segment #* Options: #* 1. Display character every n milliseconds #* 2. display segment for n seconds #* 3. display final segment for n seconds 0=don't clear display #* 4. text to display #* Example: #* --seq-display '250,3,5,2,A long message that runs to many lines' #* Display characters every 250 milliseconds #* displaying the 2-line segments for 3 seconds, #* with the final part displayed for 5 seconds. #* the messages are repeated 5 times and the screen is cleared =back =cut # parse seqdis options my ($pulse, $sPause, $rPause, $rpt, $message ) = split( /,/, $seqdisParam ); # # replace mapped characters and escape sequences $message = &replaceCc( $message ); my @mDisplay; my ($dataA, $dataB, $data1, $data2); # split message into display-width segments split at word boundaries while ( length($message) > 0 ) { if( length($message) > $dWidth ) { # need to split message # get substring as long as display width # +1 to get word that ends at display width $dataA = substr( $message, 0, $dWidth +1 ); # cut at last space so as not to split a word ($data1) = split /\s+(?=\S*+$)/, $dataA; # remainder of string $message = s #### $message = replaceCc( $message );