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-DOS

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

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

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

#include <bios.h>
#include <conio.h>
#include <stdlib.h>

#include <stdio.h>
#include <time.h>

#define COM1       0
#define DATA_READY 0x100
#define SEND_OK    0x6000
#define TRUE       1
#define FALSE      0
#define SETTINGS (_COM_9600 | _COM_CHR8 | _COM_STOP1 | _COM_NOPARITY)

int main(int ArgC, char * ArgV[])
{
  unsigned out, status, commnum, cycles;
  unsigned int failt;
  if( ArgC < 4 ){
  	printf("Pass COM port number as first argument (COM1=0, COM2=1...)\n");
        return 0;
  };
  commnum = atoi(ArgV[1]);
  printf("Working with COM%i, 9600 8N1\n",(commnum+COM1+1));

  cycles = atoi(ArgV[2]);
  printf("Cycles:%i\n",(cycles));

  printf("Command:'%s'\n",ArgV[3]);

  _bios_serialcom(_COM_INIT, COM1 + commnum, SETTINGS);
  _bios_serialcom(_COM_SEND, COM1 + commnum, 0x1B); // Clear Buffer

  time_t start = time(NULL);

  for (;cycles;cycles--){
  	char *chr = ArgV[3];
        while( *chr ){
		_bios_serialcom(_COM_SEND, COM1 + commnum, *chr ); // Send Char
        	chr++;
        };
	_bios_serialcom(_COM_SEND, COM1 + commnum, 0x0D ); // 0x0D
	out = 0xFF;
        failt = 60000;
        while( out != 0x0D ){
    		status = _bios_serialcom(_COM_STATUS, COM1 + commnum, 0);
    		if (status & DATA_READY){
			out = _bios_serialcom(_COM_RECEIVE, COM1 + commnum, 0);
                        printf("%c", (out & 0xFF));
                        //if( out == 0x0D ){
                        //	printf("\n");
                        //};

                };
                if( ! failt-- ){
                	printf("ERROR\n");
                };
        };
  }
  printf("Time:%li\n",(time(NULL) - start));
  return 0;
}
	

Тесты пройдены без ошибок. Следует отметить, что программа тестирования нормально работает только в "чистом" MS DOS. При попытках ее запустить в виде "Сеанса MS DOS" в операционной системе Windows, наблюдается некоторое ухудшение результатов (часть ответов от PowerAnt приходит не полностью), особенно если параллельно работает еще одна достаточно ресурсоемкая задача. Это связано с самой идеологией "чистой" DOS программы, что описано и в документации на bios.h, поставляемой вместе с компилятором.

Тестирование производилось при помощи следующего сценария для MS DOS:

PWRANT_1.EXE 1 3600 "?%%" >3600_1.txt
PWRANT_1.EXE 1 3600 "?="  >3600_2.txt
PWRANT_1.EXE 1 3600 "??"  >3600_3.txt
PWRANT_1.EXE 1 3600 "=A"  >3600_4.txt
PWRANT_1.EXE 1 3600 "=AbCdEfGh" >3600_5.txt

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

PowerAnt - тип SwSe - COM2, 9600 8N1
КомандаПередано + принято байт за циклЧисло цикловПередано + принято байтВремя выполнения теста (сек)Скорость (байт/сек)Практически (циклов/сек)Теоретически (циклов/сек)Циклы %
?%<CR>
+%<CR>
6 3600 21600 27 800 133,33 160 80,36%
?=<CR>
+=ABCDEFGHIJKLMN<CR>
203600 72000 92 782,61 39,13 48 80,65%
??<CR>
+? PowerAnt v2_8c SWSE<CR>
26360093600 122 767,21 29,51 36,92 79,27%
=A<CR>
+=<CR>
6 3600 21600 26 830,77 138,46 160 83,33%
=abcdefgh<CR>
+=<CR>
13 3600 46800 55 850,91 65,45 73,85 87,05%

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

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