PowerAnt - Могучий Муравей: Научи Свой компьютер Управлять Реальным Миром
PowerAnt это программное управление через RS-232 порт 14 и больше внешними устройствами с помощью компьютера. Открытый, текстовый, хорошо задокументированный протокол управления. Управление электроприборами с потребяемой мощностью до 200Вт. Хотите управлять Реальным Миром даже из MS Excel?.
 Применение
Компьютерный клуб
Компьютерная сеть
Домовая сеть
Умный дом
Прочее
 PowerAnt
Описание
Применение
Тех. характеристики
Документация
Фотографии
 Базовая станция
Описание
Применение
Тех. характеристики
Документация
 Типы PowerAnt
SwSe
SwSw
SeSe
 Скорость работы
MS-DOS
Linux
MS Windows 98
MS Windows 98, Perl
 Программирование
Примеры на Perl
C/C++ - c чего начать
C/C++ - примеры
MS Access 2000
MS Excel 2000
 Заказ
Комплектность
Цены
 ЧаВо
 Новости сайта RSS
 Статьи
 Контакты
 Рейтинги

PowerAnt - Скорость работы в MS Windows 98, Perl

В настоящее время мы не планируем проводить сертификацию своего оборудования во всевозможных компетентных организациях. Но мы проводим собственную сертификацию, результаты которой и приводятся на этой странице.

Результаты испытаний на скорость работы PowerAnt - MS Windows/ActivePerl

Тестирование производилось при помощи следующей программы:

#!/usr/bin/perl -w

use Win32::SerialPort;

$PowerAnts = new Win32::SerialPort('COM2','','') || die "Can't open COM2";
$PowerAnts->baudrate(9600) || die "Can't set 9600";
$PowerAnts->parity('none') || die "Can't set parity none";
$PowerAnts->databits(8)  || die "Can't set 8 data bits";
$PowerAnts->stopbits(1)  || die "Can't set one stopbit";
$PowerAnts->handshake('none')  || die "Can't HW flow control off";
$PowerAnts->write_settings;

sub pwrant_cmd($){
    my $cmd = shift;
    $PowerAnts->write($cmd."\r");    
    $_ = '';
    my $st = time();
    do {
	if ( time() > $st + 2 ){
		$PowerAnts->write( chr( 27 ));    
		$errors++;
		return "Device NO ANSWER to ".$cmd.", clear buffer";
	};
	$f = $PowerAnts->read(1);
    	$_ .= $f;
	#print $f;
    } while (! /\r/);
    return $_;
};

sub testStep($){
	my $cmd = shift;
	$errors = 0;
	my $start_time = time();
	for( $i = 0; $i < 3600 ; $i++ ){
		$_ = pwrant_cmd($cmd);
		$errors++ if(/-/);
	};
	my $stop_time = time();
	print $cmd." time=".($stop_time - $start_time)."sec; errors=".$errors."\n";
};

$PowerAnts->write( chr( 27 )); 
print "Begin\n";
testStep('?%');
testStep('?=');
testStep('??');
testStep('=A');
testStep('=abcdefgh');
testStep('?l');

$PowerAnts->close() || die "Что-то не так при закрытии файла устройства\n";;
undef $PowerAnts;
	

Тесты пройдены без ошибок. Полученная скорость работы устройства практически не отличается от скорости полученной при тестировании в Windows 98/Borland C v6. Это хороший пример задуматься, что быстрее скомпилировання программа или интерпретатор?

Буфер FIFO отключен

PowerAnt - тип SwSw - COM2, 9600 8N1
КомандаПередано + принято байт за циклЧисло цикловПередано + принято байтВремя выполнения теста (сек)Скорость (байт/сек)Практически (циклов/сек)Теоретически (циклов/сек)Циклы %
?%<CR>
+%<CR>
6 3600 21600 35 617,1 102 160 64,2%
?=<CR>
+=ABCDEFGHIJKLMN<CR>
203600 72000 113 637,2 31 48 66,3%
??<CR>
+? PowerAnt v2_11adc SWSE <CR>
303600108000 171 631,6 21 32 65,7%
=A<CR>
+=<CR>
6 3600 21600 34 635,3 105 160 66,1%
=abcdefgh<CR>
+=<CR>
13 3600 46800 66 709,1 54,5 73,85 73,8%
=abcdefgh<CR>
+=<CR>
10 3600 36000 58 620,7 62 96 64,6%

Тесты пройдены без ошибок.

Буфер FIFO на максимуме (14/16)

PowerAnt - тип SwSw - COM2, 9600 8N1
КомандаПередано + принято байт за циклЧисло цикловПередано + принято байтВремя выполнения теста (сек)Скорость (байт/сек)Практически (циклов/сек)Теоретически (циклов/сек)Циклы %
?%<CR>
+%<CR>
6 3600 21600 61 354,1 59 160 36,9%
?=<CR>
+=ABCDEFGHIJKLMN<CR>
203600 72000 169 426,0 21 48 44,4%
??<CR>
+? PowerAnt v2_11adc SWSE <CR>
303600108000 225 480 16 32 50%
=A<CR>
+=<CR>
6 3600 21600 60 360 60 160 37,5%
=abcdefgh<CR>
+=<CR>
13 3600 46800 88 531,8 41 73,85 55,4%
=abcdefgh<CR>
+=<CR>
10 3600 36000 99 363,6 36 96 37,9%

Тесты пройдены без ошибок.

Результаты тестирования

В ходе тестирования четко видно, что если полностью отключить буфер FIFO RS-232 порта, то скорость выполнения команд в некоторых случаях существенно возрастает. Причем разница в скорости может быть практически двукратной (как, например, в случае с командой ?%).

PowerAnt это программное управление через RS-232 порт 14 и больше внешними устройствами с помощью компьютера. Открытый, текстовый, хорошо задокументированный протокол управления. Управление электроприборами с потребяемой мощностью до 200Вт. Хотите управлять Реальным Миром даже из MS Excel?.
  © 2004-2022 by  www.anthillsolutions.com