Arduino用に簡易ハッシュ関数を作る

これでもか!っていうくらい実用性はないんだけど、
そこは、Arduino用なんで。

use v5.14;
use strict;
use warnings;

my @commands = qw/start stop bpm on off/;

foreach my $cmd ( @commands ) {
    my @tmp = map { ord; } split //, $cmd;

    my $hash_code = 0;
    for ( @tmp ) {
        $hash_code += ( $_ & 0x0F );
    }

    printf( "%-5s : %d\n", $cmd, $hash_code );
    #say join( ',', @tmp );
}

実行結果は、こんな感じ。

$ perl aaa.pl
start : 14
stop : 22
bpm : 15
on : 29
off : 27

とりあえず、この5つならすべて異なる。
技術的な課題としては、
“bpm”, “on”, “off”は引数を取るので、
コマンド受信モードと引数受信モードを作って、
あーでもない、こーでもないしたら、簡単なシンセが作れるかもね!

まずは、”start”, “stop”, “bpm”でメトロノームだけど。

おしまい。

Leave a Comment