コード例 #1
0
/**
 * 
 */
function do_fortune()
{
    if (!isset($_REQUEST['target'])) {
        echo "target required.";
        return;
    }
    $target = intval($_REQUEST['target']);
    if ($target < 1 || $target > 4) {
        echo "unknown target.";
        return;
    }
    /* 回転開始 */
    /* RSモーターは200ステップで1回転(二相励起)、400ステップで1回転(ハーフステップ)
     * 400/5 = 80
     */
    /*
     * 回転開始時はゼロ点にいるという前提で、回転し、10秒待って、ゼロ点に戻す
     */
    //$rotate = 800;
    //$mode = 3;
    $rotate = 400;
    $mode = 1;
    $step = intval($target * $rotate / 5);
    $restore_step = $rotate - $step;
    // 元位置に戻すためのステップ数
    $step = $step + $rotate * 2;
    // 演出のために2回転する
    $restore_step = $restore_step + $rotate * 2;
    // 回転
    _rotate_step($step, $mode);
    // チカチカ
    send_data(PORT_ARD1, array(ord('A')));
    send_data(PORT_ARD2, array(ord('A')));
    /* ここから結果が出るまで6秒弱 */
    sleep(8);
    // 大体8秒くらいで出る
    /* 結果が出たー */
    // アルパカ
    $data = array(255, AGB_ID, 3, 30, 1, 40);
    send_data(PORT_AGB, $data);
    // チカチカ
    send_data(PORT_ARD1, array(ord('B')));
    send_data(PORT_ARD2, array(ord('B')));
    sleep(15);
    // アルパカSTOP
    _stop();
    sleep(1);
    /* チカチカやめ */
    send_data(PORT_ARD1, array(ord('S')));
    send_data(PORT_ARD2, array(ord('S')));
    /* 元の状態に戻す */
    _rotate_step($restore_step, $mode);
    sleep(10);
}
コード例 #2
0
ファイル: email.php プロジェクト: Burick/altercpa
 private function send_smtp($from, $to, $title, $text, $files)
 {
     $server = MAIL_SERVER;
     $port = MAIL_PORT;
     $user = MAIL_USER;
     $pass = MAIL_PASS;
     $type = strpos($text, '<') !== false ? 'html' : 'plain';
     $socket = fsockopen($server, $port, $errno, $errstr, 30);
     if (defined('MAIL_DOMAIN')) {
         fputs($socket, "EHLO " . MAIL_DOMAIN . "\r\n");
     } else {
         fputs($socket, "EHLO\r\n");
     }
     if ($this->_responce($socket) != '220') {
         return $this->_stop($socket, __LINE__);
     }
     fputs($socket, "AUTH LOGIN\r\n");
     if ($this->_responce($socket) != '250') {
         return $this->_stop($socket, __LINE__);
     }
     fputs($socket, base64_encode($user) . "\r\n");
     if ($this->_responce($socket) != '334') {
         return $this->_stop($socket, __LINE__);
     }
     fputs($socket, base64_encode($pass) . "\r\n");
     if ($this->_responce($socket) != '334') {
         return $this->_stop($socket, __LINE__);
     }
     if ($this->_responce($socket) != '235') {
         return $this->_stop($socket, __LINE__);
     }
     fputs($socket, "MAIL FROM:<{$from}>\r\n");
     if ($this->_responce($socket) != '250') {
         return $this->_stop($socket, __LINE__);
     }
     fputs($socket, "RCPT TO:<{$to}>\r\n");
     if ($this->_responce($socket) != '250') {
         return $this->_stop($socket, __LINE__);
     }
     fputs($socket, "DATA\r\n");
     if ($this->_responce($socket) != '354') {
         return $this->_stop($socket, __LINE__);
     }
     fputs($socket, "To: {$to}\r\n");
     fputs($socket, "From: {$from}\r\n");
     fputs($socket, "Subject: {$title}\r\n");
     if ($files) {
         $boundary = '---' . md5(microtime()) . '---';
         //Разделитель
         fputs($socket, "Content-Type: multipart/mixed; boundary=\"{$boundary}\"\r\n");
         fputs($socket, "Content-Transfer-Encoding: 8bit\r\n");
         fputs($socket, "\r\n\r\n");
         fputs($socket, "--{$boundary}\r\nContent-Type: text/{$type}; charset=utf-8\r\n\r\n" . $text . "\r\n--{$boundary}");
         foreach ($files as $path => $name) {
             $data = file_get_contents($path);
             fputs($socket, "\r\nContent-Type: application/octet-stream; name==?utf-8?B?" . base64_encode($name) . "?=\r\n");
             fputs($socket, "Content-Transfer-Encoding: base64\r\n");
             fputs($socket, "Content-Disposition: attachment; filename==?utf-8?B?" . base64_encode($name) . "?=\r\n\r\n");
             fputs($socket, chunk_split(base64_encode($data)) . "\r\n--" . $boundary);
             unset($data);
         }
         fputs($socket, "--\r\n.\r\n");
     } else {
         fputs($socket, "Content-Type: text/{$type}; charset=UTF-8\r\n");
         fputs($socket, "Content-Transfer-Encoding: 8bit\r\n");
         fputs($socket, "\r\n\r\n");
         fputs($socket, $text . " \r\n");
         fputs($socket, ".\r\n");
     }
     if ($this->_responce($socket) != '250') {
         return _stop($socket, __LINE__);
     }
     fputs($socket, "QUIT\r\n");
     fclose($socket);
     return true;
 }