initial commit
[usb-nixie.git] / nixie-test.pl
1 #!/usr/bin/perl
2
3 use strict;
4 use Time::HiRes qw(usleep nanosleep);
5 use NetServer::Generic;
6
7 my $tty = "/dev/ttyACM0";
8
9 my $digits = "1234567890";
10 #$digits=reverse($digits);
11
12 l_scroll($tty,$digits);
13 sleep(1);
14 r_scroll($tty,$digits);
15 sleep(1);
16 casino_all($tty,$digits);
17 sleep(1);
18 casino_one_r($tty,$digits);
19 sleep(3);
20 `/bin/echo '            ' > $tty`;
21 print "FINISHED!\n";
22
23 #  print "input: $tmp ".length($tmp)."\n";
24 #  if (length($tmp)==10) {
25 #    if (int(rand(10))>=6) {
26 #      casino_one_r($tty,$tmp);
27 #    } else {
28 #      casino_all($tty,$tmp);
29 #    }
30 #  } else {
31 #   if (int(rand(10))>=6) {
32 #      l_scroll($tty,$tmp);
33 #    } else {
34 #      r_scroll($tty,$tmp);
35 #    }
36 #  }
37 #  sleep(5);
38 #  `/bin/echo '          ' > $tty`;
39 #  return; 
40 #};
41 #}
42
43 sub l_scroll { 
44   my $tty = shift;
45   my $digits = shift;
46   my $length=length($digits);
47   my @chars=split('',$digits);
48   #if ($length==10) {
49   #  `/bin/echo $digits > $tty`;
50   #  print "$digits\n";
51   #}
52   #if ($length!=10) {
53     my $display="          ";
54     `/bin/echo '$display' > $tty`;
55     my $i;
56     my $displaylen=10+$length;
57     while($i<=$displaylen) {
58       $display=$display.$chars[$i];
59       if ($length<=$i) {
60         $display=$display." ";
61       }
62       $i++;
63       $display=substr($display,1);
64       usleep(400000);
65       `/bin/echo '$display' > $tty`;
66       print "$display\n";
67     }
68   #}
69 }
70
71 sub r_scroll { 
72   my $tty = shift;
73   my $digits = shift;
74   my $length=length($digits);
75   my @chars=split('',$digits);
76   #if ($length==10) {
77   #  `/bin/echo $digits > $tty`;
78   #  print "$digits\n";
79   #}
80   #if ($length!=10) {
81     my $display="          ";
82     `/bin/echo '$display' > $tty`;
83     my $displaylen=10+$length;
84     my $i;
85     while($displaylen>0) {
86       $display=$chars[$i].$display;
87       if ($length<=$i) {
88         $display=" ".$display;
89       }
90       $i++;
91       $displaylen--;
92       $display=substr($display,0,-1);
93       usleep(400000);
94       `/bin/echo '$display' > $tty`;
95     }
96     usleep(400000);
97     `/bin/echo '$display' > $tty`;
98   #}
99 }
100
101 sub casino_all {
102   my $tty = shift;
103   my $digits = shift;
104   $digits= reverse($digits);
105   my $length=length($digits);
106   print "Starting Casino Random\n";
107   if ($length==10) {
108     my $i;
109     while ($i<50) {
110       my $r_digit=int(rand(10)).int(rand(10)).int(rand(10)).int(rand(10)).int(rand(10)).int(rand(10)).int(rand(10)).int(rand(10)).int(rand(10)).int(rand(10));
111       `/bin/echo $r_digit > $tty`;
112       print "$r_digit\n";
113       usleep(50000);
114       $i++;
115     }
116     `/bin/echo $digits > $tty`;
117   }
118 }
119
120 sub casino_one_l {
121   my $tty = shift;
122   my $digits = shift;
123   my $length=length($digits);
124   my @chars=split('',$digits);
125   print "Starting Casino Digit Random\n";
126   if ($length==10) {
127     my $i;
128     while ($i<10) {
129       my $r_digit=int(rand(10)).int(rand(10)).int(rand(10)).int(rand(10)).int(rand(10)).int(rand(10)).int(rand(10)).int(rand(10)).int(rand(10)).int(rand(10));
130       `/bin/echo $r_digit > $tty`;
131       usleep(50000);
132       $i++;
133     }
134     $digits=$chars[0].int(rand(10)).int(rand(10)).int(rand(10)).int(rand(10)).int(rand(10)).int(rand(10)).int(rand(10)).int(rand(10)).int(rand(10));
135     `/bin/echo $digits > $tty`;
136     $i=0;
137     while ($i<10) {
138       my $r_digit=$chars[0].int(rand(10)).int(rand(10)).int(rand(10)).int(rand(10)).int(rand(10)).int(rand(10)).int(rand(10)).int(rand(10)).int(rand(10));
139       `/bin/echo $r_digit > $tty`;
140       usleep(50000);
141       $i++;
142     }
143     $digits=$chars[0].$chars[1].int(rand(10)).int(rand(10)).int(rand(10)).int(rand(10)).int(rand(10)).int(rand(10)).int(rand(10)).int(rand(10));
144     `/bin/echo $digits > $tty`;
145     $i=0;
146     while ($i<10) {
147       my $r_digit=$chars[0].$chars[1].int(rand(10)).int(rand(10)).int(rand(10)).int(rand(10)).int(rand(10)).int(rand(10)).int(rand(10)).int(rand(10));
148       `/bin/echo $r_digit > $tty`;
149       usleep(50000);
150       $i++;
151     }
152     $digits=$chars[0].$chars[1].$chars[2].int(rand(10)).int(rand(10)).int(rand(10)).int(rand(10)).int(rand(10)).int(rand(10)).int(rand(10));
153     `/bin/echo $digits > $tty`;
154     $i=0;
155     while ($i<10) {
156       my $r_digit=$chars[0].$chars[1].$chars[2].int(rand(10)).int(rand(10)).int(rand(10)).int(rand(10)).int(rand(10)).int(rand(10)).int(rand(10));
157       `/bin/echo $r_digit > $tty`;
158       usleep(50000);
159       $i++;
160     }
161     $digits=$chars[0].$chars[1].$chars[2].$chars[3].int(rand(10)).int(rand(10)).int(rand(10)).int(rand(10)).int(rand(10));
162     `/bin/echo $digits > $tty`;
163     $i=0;
164     while ($i<10) {
165       my $r_digit=$chars[0].$chars[1].$chars[2].$chars[3].int(rand(10)).int(rand(10)).int(rand(10)).int(rand(10)).int(rand(10)).int(rand(10));
166       `/bin/echo $r_digit > $tty`;
167       usleep(50000);
168       $i++;
169     }
170     $digits=$chars[0].$chars[1].$chars[2].$chars[3].$chars[4].int(rand(10)).int(rand(10)).int(rand(10)).int(rand(10)).int(rand(10));
171     `/bin/echo $digits > $tty`;
172     $i=0;
173     while ($i<10) {
174       my $r_digit=$chars[0].$chars[1].$chars[2].$chars[3].$chars[4].int(rand(10)).int(rand(10)).int(rand(10)).int(rand(10)).int(rand(10));
175       `/bin/echo $r_digit > $tty`;
176       usleep(50000);
177       $i++;
178     }
179     $digits=$chars[0].$chars[1].$chars[2].$chars[3].$chars[4].$chars[5].int(rand(10)).int(rand(10)).int(rand(10)).int(rand(10));
180     `/bin/echo $digits > $tty`;
181     $i=0;
182     while ($i<10) {
183       my $r_digit=$chars[0].$chars[1].$chars[2].$chars[3].$chars[4].$chars[5].int(rand(10)).int(rand(10)).int(rand(10)).int(rand(10));
184       `/bin/echo $r_digit > $tty`;
185       usleep(50000);
186       $i++;
187     }
188     $digits=$chars[0].$chars[1].$chars[2].$chars[3].$chars[4].$chars[5].$chars[6].int(rand(10)).int(rand(10)).int(rand(10));
189     `/bin/echo $digits > $tty`;
190     $i=0;
191     while ($i<10) {
192       my $r_digit=$chars[0].$chars[1].$chars[2].$chars[3].$chars[4].$chars[5].$chars[6].int(rand(10)).int(rand(10)).int(rand(10));
193       `/bin/echo $r_digit > $tty`;
194       usleep(50000);
195       $i++;
196     }
197     $digits=$chars[0].$chars[1].$chars[2].$chars[3].$chars[4].$chars[5].$chars[6].$chars[7].int(rand(10)).int(rand(10));
198     `/bin/echo $digits > $tty`;
199     $i=0;
200     while ($i<10) {
201       my $r_digit=$chars[0].$chars[1].$chars[2].$chars[3].$chars[4].$chars[5].$chars[6].$chars[7].int(rand(10)).int(rand(10));
202       `/bin/echo $r_digit > $tty`;
203       usleep(50000);
204       $i++;
205     }
206     $digits=$chars[0].$chars[1].$chars[2].$chars[3].$chars[4].$chars[5].$chars[6].$chars[7].$chars[8].int(rand(10));
207     `/bin/echo $digits > $tty`;
208     $i=0;
209     while ($i<10) {
210       my $r_digit=$chars[0].$chars[1].$chars[2].$chars[3].$chars[4].$chars[5].$chars[6].$chars[7].$chars[8].int(rand(10));
211       `/bin/echo $r_digit > $tty`;
212       usleep(50000);
213       $i++;
214     }
215     $digits=$chars[0].$chars[1].$chars[2].$chars[3].$chars[4].$chars[5].$chars[6].$chars[7].$chars[8].$chars[9];
216     `/bin/echo $digits > $tty`;
217   }
218 }
219
220 sub casino_one_r {
221   my $tty = shift;
222   my $digits = shift;
223   my $length=length($digits);
224   my @chars=split('',$digits);
225   print "Starting Casino Digit Random\n";
226   if ($length==10) {
227     my $i;
228     while ($i<10) {
229       my $r_digit=int(rand(10)).int(rand(10)).int(rand(10)).int(rand(10)).int(rand(10)).int(rand(10)).int(rand(10)).int(rand(10)).int(rand(10)).int(rand(10));
230       `/bin/echo $r_digit > $tty`;
231       usleep(50000);
232       $i++;
233     }
234     $digits=int(rand(10)).int(rand(10)).int(rand(10)).int(rand(10)).int(rand(10)).int(rand(10)).int(rand(10)).int(rand(10)).int(rand(10)).$chars[0];
235     `/bin/echo $digits > $tty`;
236     $i=0;
237     while ($i<10) {
238       my $r_digit=int(rand(10)).int(rand(10)).int(rand(10)).int(rand(10)).int(rand(10)).int(rand(10)).int(rand(10)).int(rand(10)).int(rand(10)).$chars[0];
239       `/bin/echo $r_digit > $tty`;
240       usleep(50000);
241       $i++;
242     }
243     $digits=int(rand(10)).int(rand(10)).int(rand(10)).int(rand(10)).int(rand(10)).int(rand(10)).int(rand(10)).int(rand(10)).$chars[1].$chars[0];
244     `/bin/echo $digits > $tty`;
245     $i=0;
246     while ($i<10) {
247       my $r_digit=int(rand(10)).int(rand(10)).int(rand(10)).int(rand(10)).int(rand(10)).int(rand(10)).int(rand(10)).int(rand(10)).$chars[1].$chars[0];
248       `/bin/echo $r_digit > $tty`;
249       usleep(50000);
250       $i++;
251     }
252     $digits=int(rand(10)).int(rand(10)).int(rand(10)).int(rand(10)).int(rand(10)).int(rand(10)).int(rand(10)).$chars[2].$chars[1].$chars[0];
253     `/bin/echo $digits > $tty`;
254     $i=0;
255     while ($i<10) {
256       my $r_digit=int(rand(10)).int(rand(10)).int(rand(10)).int(rand(10)).int(rand(10)).int(rand(10)).int(rand(10)).$chars[2].$chars[1].$chars[0];
257       `/bin/echo $r_digit > $tty`;
258       usleep(50000);
259       $i++;
260     }
261     $digits=int(rand(10)).int(rand(10)).int(rand(10)).int(rand(10)).int(rand(10)).$chars[3].$chars[2].$chars[1].$chars[0];
262     `/bin/echo $digits > $tty`;
263     $i=0;
264     while ($i<10) {
265       my $r_digit=int(rand(10)).int(rand(10)).int(rand(10)).int(rand(10)).int(rand(10)).int(rand(10)).$chars[3].$chars[2].$chars[1].$chars[0];
266       `/bin/echo $r_digit > $tty`;
267       usleep(50000);
268       $i++;
269     }
270     $digits=int(rand(10)).int(rand(10)).int(rand(10)).int(rand(10)).int(rand(10)).$chars[4].$chars[3].$chars[2].$chars[1].$chars[0];
271     `/bin/echo $digits > $tty`;
272     $i=0;
273     while ($i<10) {
274       my $r_digit=int(rand(10)).int(rand(10)).int(rand(10)).int(rand(10)).int(rand(10)).$chars[4].$chars[3].$chars[2].$chars[1].$chars[0];
275       `/bin/echo $r_digit > $tty`;
276       usleep(50000);
277       $i++;
278     }
279     $digits=int(rand(10)).int(rand(10)).int(rand(10)).int(rand(10)).$chars[5].$chars[4].$chars[3].$chars[2].$chars[1].$chars[0];
280     `/bin/echo $digits > $tty`;
281     $i=0;
282     while ($i<10) {
283       my $r_digit=int(rand(10)).int(rand(10)).int(rand(10)).int(rand(10)).$chars[5].$chars[4].$chars[3].$chars[2].$chars[1].$chars[0];
284       `/bin/echo $r_digit > $tty`;
285       usleep(50000);
286       $i++;
287     }
288     $digits=int(rand(10)).int(rand(10)).int(rand(10)).$chars[6].$chars[5].$chars[4].$chars[3].$chars[2].$chars[1].$chars[0];
289     `/bin/echo $digits > $tty`;
290     $i=0;
291     while ($i<10) {
292       my $r_digit=int(rand(10)).int(rand(10)).int(rand(10)).$chars[6].$chars[5].$chars[4].$chars[3].$chars[2].$chars[1].$chars[0];
293       `/bin/echo $r_digit > $tty`;
294       usleep(50000);
295       $i++;
296     }
297     $digits=int(rand(10)).int(rand(10)).$chars[7].$chars[6].$chars[5].$chars[4].$chars[3].$chars[2].$chars[1].$chars[0];
298     `/bin/echo $digits > $tty`;
299     $i=0;
300     while ($i<10) {
301       my $r_digit=int(rand(10)).int(rand(10)).$chars[7].$chars[6].$chars[5].$chars[4].$chars[3].$chars[2].$chars[1].$chars[0];
302       `/bin/echo $r_digit > $tty`;
303       usleep(50000);
304       $i++;
305     }
306     $digits=int(rand(10)).$chars[8].$chars[7].$chars[6].$chars[5].$chars[4].$chars[3].$chars[2].$chars[1].$chars[0];
307     `/bin/echo $digits > $tty`;
308     $i=0;
309     while ($i<10) {
310       my $r_digit=int(rand(10)).$chars[8].$chars[7].$chars[6].$chars[5].$chars[4].$chars[3].$chars[2].$chars[1].$chars[0];
311       `/bin/echo $r_digit > $tty`;
312       usleep(50000);
313       $i++;
314     }
315     $digits=$chars[9].$chars[8].$chars[7].$chars[6].$chars[5].$chars[4].$chars[3].$chars[2].$chars[1].$chars[0];
316     `/bin/echo $digits > $tty`;
317   }
318 }