2011年8月13日土曜日

PICでC使うときの注意点

最近もう片方のブログばっかり更新してたので久しぶりにこっちを更新

さて今回はC語の「ヘンなコーディング」をちょっと紹介
まぁ「んなもん知ってるよ」とか「知らなかったの?」とか言われそうだけど
生暖かい目で見守ってください


例えば
void main(void) {
 TRISA = 0;
 TRISB = 0;

 while(1) {
  RB0 = 1;
  RB0 = 0;
 }
}
っていうコードが合った場合
RB0に1を入れる ↓
RB0に0を入れる 最初に戻る
というコードのはずなんだけど
実際には
STATUS,5 = 0;
STATUS,6 = 0;
RB0 = 1;
RB0 = 0;
というコードになっちゃう時がある
ドジっ娘め…

ということで
プログラムメモリ1命令も無駄にできない っていう場合を除いて
void main(void) {
 TRISA = 0;
 TRISB = 0;
 RB0 = 0;

 while(1) {
  RB0 = 1;
  RB0 = 0;
 }
}
っていうふうに
ループに入る前に強制的にバンク0に戻してやったりしたほうが安心できる
まぁ2命令程度が大きな誤差になるっていうプログラムはあまり見ないけど
時間にシビアなコードだと結構問題かもしれない

2011年2月8日火曜日

(PC)C#で簡単にTwitterBotを作る方法

今回はPCです

Botを作りたいと思っていましたが
なかなか簡単な方法がない
PHPとか聞いたこと無いような言語とかなら
参考書もいっぱいあるんだけど

Microsoftで紹介している方法はBASIC認証なので使うことはできない

OAuth認証とかは複雑すぎるというかいみわからないので
C#で実装するのやだ
ライブラリとかめんどくせーし

ということでいろいろ情報を集めた結果
TweetConsole
というクライアントを使うのが一番楽みたい
これしか試してないけど


        private string Send_Tw(string cmd)
        {
            Process p = new Process();

            p.StartInfo.FileName = SEND_path;
            p.StartInfo.CreateNoWindow = true;
            p.StartInfo.UseShellExecute = false;
            p.StartInfo.Arguments = cmd;          

            p.StartInfo.RedirectStandardOutput = true;

            p.Start(); // アプリの実行開始
            string output = p.StandardOutput.ReadToEnd();

            output = output.Replace("\r\r\n", "");
            return output;
        }

というコードでTwitterに投稿することができます
string SEND_path に上記クライアントのパスを
呼び出すときにcmdに"/t "(スラッシュ 小文字の"T" 半角スペース)から始まる文字列を書き込みます
戻り値にはコンソールに表示される文字が入るので
"つぶやきました!"が入ってれば正常
"403"が入ってればエラー
みたいな感じになります

しかし リツイートの方法がわからない
誰か分かる人がいたら教えてください。。。