SSブログ

あれの開発記 25ページ目 [ColdFire V1]

※一生懸命作ったので、宜しければ投票お願いします。http://www.freescale.co.jp/event/FTFJ/index.html
フリスクメンバーのログインが必要です。
※業務連絡です。すいませんP社の方、ESECと書いてしまいましたが、購入したのはワイヤレスジャパンのキャンペーンです。
Img_0671.jpg
net_set_radio_006.png
net_set_radio_007.png
調子に乗ってしまって、先のUDPエコーサーバーを改造してシリアル/Ethernet間の簡単な(トランスペアレントな)ブリッジを作成してみました。ですが、結構苦労しました事は前回のアップから時間が掛かっているところからも想像できるかと思います。

SilentCにはシリアルライブラリがあるのだけれど、どうしても安定して動かす事ができない。コンソールとSCIが一致してしまうと駄目なんでしょうかね?。取り敢えずコンソールライブラリを「ああでもない、こうでもない」とやりながら、なんだかイマイチすっきりしない無理やりなプログラムです。マルチタスクでできればーーーー。


main()
{
#stop 0
  char c,*p,*e_buf;
  char soc = CreateSocket( 0 );
  char *s,*s_buf = MemoryAlloc( 80 );
  int len,dport;
  long dip = 0;
  Bind( soc, 7, 1 );
  s = s_buf;
  for(;;)
  {
    if( (len = RecvFrom( soc, 10 )) == (-1) )
    {
      break;
    }
    else if( len > 0 )
    {
      dip = GetSenderIP( soc );
      dport = GetSenderPort( soc );
      e_buf = GetReceiveBuffer( soc, 1 );
      for( p = e_buf; len > 0; len-- )
      {
        PrChar( *p++ );
      }
      PrStr( "\r\n" );
      MemoryFree( e_buf );
    }
    else ;

    while( (c = Getc( 0 )) > 0 )
    {
      PrChar( c );
      *s = c;
      if( c == 0x0d || c == 0x0a )
      {
        PrChar( 0x0a );
        *s = 0;
        if( StrCmp( s_buf, "END" ) == 0 )
        {
          CloseSocket( soc );
          MemoryFree( s_buf );
          return;
        }
        if( dip != 0 )
        {
          SendTo( soc, dip, dport, s_buf, StrLen( s_buf ) );
        }
        s = s_buf;
      }
      else
      {
        if( ++s >= &s_buf[ 80 ] ) s = s_buf;
      }
    }
  }
  CloseSocket( soc );
  MemoryFree( s_buf );
}

#stop 0制御命令を入れるとCtrl+Cでの停止が出来なくなるので、”END”と言う文字列をシリアル側でチェックして、そこで終了させています。
※while( (c = Getc( 0 )) > 0 )と記述しているので、トランスペアレントとは言えないですね。もっとも考えているフレームは全てテキストでやろうと思っているので、なんとかこれで行けるかな。

Interface (インターフェース) 2008年 10月号 [雑誌]

Interface (インターフェース) 2008年 10月号 [雑誌]

  • 作者:
  • 出版社/メーカー: CQ出版
  • 発売日: 2008/08/25
  • メディア: 雑誌



Interface (インターフェース) 2008年 09月号 [雑誌]

Interface (インターフェース) 2008年 09月号 [雑誌]

  • 作者:
  • 出版社/メーカー: CQ出版
  • 発売日: 2008/07/25
  • メディア: 雑誌



nice!(0)  コメント(2)  トラックバック(0) 

nice! 0

コメント 2

noritan

いっそのこと、UART1で作っちゃうのはいかがですか?

by noritan (2008-09-01 13:59) 

hamayan

そうですね、でも無線からネットワークスティックをコントロールできるのもなかなか魅力なんですよ。今telnetでは全然コントロールしていません。それにパターンで接続されているし。

それになんか文句ばかりに見えますが、実はSilentC気に入っていると言うか、感嘆しているというか、スクリプトでここまでできるのか!と本音の所では感じています。

是非、SilentCのパソコン版を作って欲しい。これならパソコンプログラミング嫌いが直るかも。

by hamayan (2008-09-01 14:59) 

コメントを書く

お名前:[必須]
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

※ブログオーナーが承認したコメントのみ表示されます。

トラックバック 0

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。