Форум программистов, компьютерный форум CyberForum.ru

Управление широковещательным оборудованием - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Ошибка "Access violation..." при попытке отсортировать структуру из файла быстрым методом http://www.cyberforum.ru/cpp-beginners/thread306941.html
Собстно ошибко "Project '...' raised exception class EAccessViolation with message 'Access violation at address 00401464 Write of address 004040bc'. Process stopped. Use..." Компилируется нормально, всё работает. Ошибка вылетает при выборе сортировки, подсвечивается строчка 19 "data = temp;" Билдер вешается.. структура struct telephone { char name; char adr; ...
C++ Несколько простых задач... 1. составить программу вывода 3-х значных десятичных цифр сумма которых делится на 3. #include "stdafx.h" #include <stdio.h> #include <iostream> using namespace std; int _tmain(int argc, _TCHAR* argv) { int main(); http://www.cyberforum.ru/cpp-beginners/thread306934.html
C++ нужно составить программу.
Всем привет,люди знающие хорошо с++ помогите написать программу. С внешнего устройства (с клавиатуры, из файла) вводятся последовательно числа, количество которых велико и заранее неизвестно. Требуется сохранять и в процессе ввода каждого числа распечатывать не более m последних введенных чисел (в порядке их поступления). Сам пробывал,что-то вообще не получается. Заранее благодарен.
Обработка символьной информации C++
Добрый день. Форумчани, очень нужна помощь, вот задание:Распечатать в порядке, обатном алфавитному, все буквы, которые входят в текст не менее трех раз... Вот код: #include "iostream" #include "string" #include "conio.h" using namespace std; int main() { char* s1 = "eertyre";;// задаем первоначальную строку char* s2;// задаем строку, в которой будут входить лишь те буквы, которые...
C++ Списки, динамическая память и указатели http://www.cyberforum.ru/cpp-beginners/thread306909.html
11. Написать функцию numberstring( ) для подсчета числа строк в тексте. Напечатать это число. То есть нужно создать однонаправленный список, в который заносится построчно текст какой-либо уже имеющейся программы, вывести исходный список и число строк в этом списке Компилятор: Borland C++ вот методичка - http://www.ksu.ru/f6/k12/bin_files/-1-2-full!7.pdf
C++ Для каждого массива опpеделить номеp столбца с наибольшим количеством положительных элементов Помогите с решением!! Что надо вставить вместо ???, чтобы все работало? Даны вещественные массивы A, V. Для каждого массива опpеделить номеp столбца с наибольшим количеством положительных элементов. #include<iostream.h> #include<conio.h> подробнее

Показать сообщение отдельно
kazhuravlev
Сообщений: n/a

Управление широковещательным оборудованием - C++

28.05.2011, 16:15. Просмотров 357. Ответов 0
Метки (Все метки)

Работаю инженером на телевидении. Контролирую работу широковещательного пред-эфирного, пост-эфирного и эфирного оборудования. Для управления работой некоторых устройств используются дорогие и малоэффективные программы с ограниченной поддержкой протокола управления. В руки попало описание протокола, и примеры реализации его на языке C ( или C++, мне сложно определить ). Встала задача написать программу, способную контролировать работу данного устройства. Так как я являюсь Python/Java программистом, и только догадываюсь о том что написано в коде ниже, я прошу вас помочь мне понять смысл действий, описанных в данном коде. Если кто-либо может в точности перевести это на Python, и оно будет работать - переведу денежку на WebMoney.
С помощью описанной ниже функции remote_send(), по идее должна осуществляться передача команды вышеописанному устройству ( думаю не имеет особого смысла рассказывать о его предназначении ).

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#define STX0 0x002
#define STX1 0x003
#define ACK0 0x004
#define ACK1 0x005
#define NAK 0x007
char stx = STX0;
const UINT lstab[] =
{
0x0000, 0xc0c1, 0xc181, 0x0140, 0xc301, 0x03c0,
0x0280, 0xc241, 0xc601, 0x06c0, 0x0780, 0xc741,
0x0500, 0xc5c1, 0xc481, 0x0440
};
const UINT mstab[] =
{
0x0000, 0xcc01, 0xd801, 0x1400, 0xf001, 0x3c00,
0x2800, 0xe401, 0xa001, 0x6c00, 0x7800, 0xb401,
0x5000, 0x9c01, 0x8801, 0x4400
};
void do_crc(INT8 ch, UINT16 * crcptr)
{
UINT tmp;
 
tmp = *crcptr ^ ch;
*crcptr = mstab[(tmp>>4) & 0xf] ^ lstab[tmp&0xf] ^ ((*crcptr) >> 8);
}
void remote_send(char * format,...)
{
UINT16 rem_crc = 0;
INT ch;
char message[128];
char* messageptr = (char*)message;
va_list argptr;
va_start(argptr, format);
vsprintf(message, format, argptr);
va_end(argptr);
rem_send_char(stx);
while((ch = *messageptr++) != 0)
{
rem_send_char(ch);
do_crc(ch, &rem_crc);
}
rem_send_char(':');
do_crc(':', &rem_crc);
rem_send_char(rem_crc & 0xff);
rem_send_char(rem_crc >> 8);
if (stx == STX0)
stx = STX1;
else
stx = STX0;
}


Для примера приведу пример использования функции remote_send() в обертке:

C++
1
2
3
4
5
6
7
8
9
// плавно скрыть/показать видео слой
// где 1( единица ) - номер команды ( длинна команды до 3 символов ),
// Layer - один из четырех слоев,
// Up - одно из двух значений( 1 - поднять слой, 2 - опустить)
 
void FadeKeyer(int Layer, bool Up) 
 {
   remote_send("1%x %d", Layer, Up ? 1:0); 
 }
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru