setChar(0x01, array( 0b10000, 0b10000, 0b10000, 0b10000, 0b10000, 0b10000, 0b10000, 0b10000, ) ); $lcd->setChar(0x02, array( 0b11000, 0b11000, 0b11000, 0b11000, 0b11000, 0b11000, 0b11000, 0b11000, ) ); $lcd->setChar(0x03, array( 0b11100, 0b11100, 0b11100, 0b11100, 0b11100, 0b11100, 0b11100, 0b11100, ) ); $lcd->setChar(0x04, array( 0b11110, 0b11110, 0b11110, 0b11110, 0b11110, 0b11110, 0b11110, 0b11110, ) ); $lcd->setChar(0x05, array( 0b11111, 0b11111, 0b11111, 0b11111, 0b11111, 0b11111, 0b11111, 0b11111, ) ); /***************************************************** * 以降、表示処理 ****************************************************/ // 固定表示 $lcd->printData("CPU:"); $lcd->printPosData( "MEM:", 1, 0 ); // 使用率表示 while(1){ // CPU表示 viewGauges(0, 4, $osInfo->getCpuData(), $lcd); // メモリー表示 viewGauges(1, 4, $osInfo->getMemData(), $lcd); sleep(1); // 1秒待機 } /** * LCDにゲージ表示を行う。 * @param 表示位置(行) * @param 表示位置(列) * @param ゲージ表示する値(0-100) * @param Lcd のインスタンス */ function viewGauges($line, $pos, $value, $lcd){ // 0 から 5 までのゲージを配列化) $gauges = array(0x20, 0x01, 0x02, 0x03, 0x04, 0x05); // カーソルを移動 $lcd->movePos($line, $pos); $view = $value; // ゲージ表示値 for($i = 0; $i < 10; $i++ ){ // 10マス使ってゲージ表示(1マス=10%範囲) // 現在表示する値 $pos = ceil($view/2); // 1マスのゲージが5マスしか出せない(2% = 1列 if( $pos < 0 ) $pos = 0; if( $pos > 5 ) $pos = 5; $lcd->printChar( $gauges[$pos] ); // 次に移る $view -= 10; } // 数値表示 if( $value == 100 ){ $lcd->printData("##"); } else { if( $value < 10 ) $lcd->printData("0"); $lcd->printData(strval($value)); } } ?>