Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.220.178.207] |
|
Страницы: (6) « Первая ... 3 4 [5] 6 все ( Перейти к последнему сообщению ) |
Сообщ.
#61
,
|
|
|
может быть все таки не ssize_t, а size_t ????
Цитата typedef LONG_PTR ssize_t Вопрос, правильно ли я сделал? Я думаю не очень |
Сообщ.
#62
,
|
|
|
насколько я помню size_t это unsigned long, а ssize_t это long.
|
Сообщ.
#63
,
|
|
|
Сообщ.
#64
,
|
|
|
Цитата popsa @ насколько я помню size_t это unsigned long, а ssize_t это long. Я скачал файлик libmodbus-3.0.1.tar.gz, в нем хедер modbus-private.h, в строке 90 следующее: ssize_t (*send) (modbus_t *ctx, const uint8_t *req, int req_length); ssize_t (*recv) (modbus_t *ctx, uint8_t *rsp, int rsp_length); В MSDN на странице типов следующее: typedef LONG_PTR SSIZE_T typedef ULONG_PTR SIZE_T название переменных большими буквами, в хедере модбаса маленькими бюуквами. Вот я и добавил определение типа. Вроде скачивал библиотеку с родного сайта. Компилил, как понятно под виндовсом 7 в среде VS2010 C++. |
Сообщ.
#65
,
|
|
|
Да будет тебе известно, что в язике программирования Си и Си++, все регистро зависимо.
но у меня тип описан как typedef int ssize_t; |
Сообщ.
#66
,
|
|
|
у меня в солярисе
#ifndef _SSIZE_T #define _SSIZE_T #if defined(_LP64) || defined(_I32LPx) typedef long ssize_t; /* size of something in bytes or -1 */ #else typedef int ssize_t; /* (historical version) */ #endif #endif /* !_SSIZE_T */ |
Сообщ.
#67
,
|
|
|
Цитата popsa @ у меня в солярисе #ifndef _SSIZE_T #define _SSIZE_T #if defined(_LP64) || defined(_I32LPx) typedef long ssize_t; /* size of something in bytes or -1 */ #else typedef int ssize_t; /* (historical version) */ #endif #endif /* !_SSIZE_T */ Эта библиотека заточена под линукс, я же кодю в WIN32. В ридми к этой библиотеке написано следующее: If you want to compile with Microsoft Visual Studio, you need to install http://code.google.com/p/msinttypes/ to fill the absence of stdint.h. Я скачал этот файлик и сохранил. Может в нем как раз и должен был быть описан этот тип? Кто кодит по WIN32, отзовитесь. |
Сообщ.
#68
,
|
|
|
Цитата Эта библиотека заточена под линукс, я же кодю в WIN32. В ридми к этой библиотеке написано следующее: If you want to compile with Microsoft Visual Studio, you need to install http://code.google.com/p/msinttypes/ to fill the absence of stdint.h. Я скачал этот файлик и сохранил. Может в нем как раз и должен был быть описан этот тип? Кто кодит по WIN32, отзовитесь. Раз написано делай, только stdint.h включи первым |
Сообщ.
#69
,
|
|
|
Обсуждение ModBus подтолкнуло меня к тому, что бы задать более общий вопрос. Часто приходится писать маленькие программы для опроса какого-либо устройства по ModBus (в основном для проверки устройств в процессе их наладки). Поскольку они заточены под конкретное устройство с фиксированным набором регистров, особых сложностей при опросе не возникает. Сейчас же стоит более сложная задача. Нужно делать что-то вроде системы визуализации, причем набор устройств может быть различным, устройства будут подключаться к шине RS-485, к которой подключен и компьютер(т.е. через один COM порт будут опрашиваться сразу несколько устройств). Опрос по протоколу ModBus. Хочу спросить, есть ли какие-нибудь статьи (или книги) по поводу разработки систем такого типа (получается что-то вроде куска SCADA, занимающегося только визуализацией)? Просто пока мои жалкие попытки приводят к каким-то разрозненным кускам кода, никак не связанным друг с другом. Параллельно пытаюсь разобраться в исходниках OpenScada. Если этот вопрос - сильный оффтоп, скажите, создам новую тему.
|
Сообщ.
#70
,
|
|
|
Цитата Dem_max @ Цитата Эта библиотека заточена под линукс, я же кодю в WIN32. В ридми к этой библиотеке написано следующее: If you want to compile with Microsoft Visual Studio, you need to install http://code.google.com/p/msinttypes/ to fill the absence of stdint.h. Я скачал этот файлик и сохранил. Может в нем как раз и должен был быть описан этот тип? Кто кодит по WIN32, отзовитесь. Раз написано делай, только stdint.h включи первым Я так и делаю. Только в том файлике, который я скачал с гугла нет типа о котором мы говорим. Отсюда вопрос, если этот файл не из библиотеки, а из гугла, то не вкралась ли в него какая либо неточность? Есть кто нибудь, кто работает с библиотекой под WIN32? Если есть такие, ответьте, есть в вашем файлике stdint.h тип ssize_t? |
Сообщ.
#71
,
|
|
|
Цитата Если есть такие, ответьте, есть в вашем файлике stdint.h тип ssize_t? смотри выше. |
Сообщ.
#72
,
|
|
|
Цитата Dem_max @ Да будет тебе известно, что в язике программирования Си и Си++, все регистро зависимо. но у меня тип описан как typedef int ssize_t; Ты кодиш под WIN32 для ModBus? Если да, можешь поделиться примерчиком использования библиотеки ModBus? |
Сообщ.
#73
,
|
|
|
trainer помоги плиз.
Разбираюсь с твоей библиотекой. Строка в примере PortId := TrComPortOpen(0); (* COM1 *) Я так понимаю, что PortId - это хендл порта? И по нумерации портов 0 - COM1 1 - COM2 и т.д.? Почему спрашиваю, при выполнении PortId := TrComPortOpen(0); возвращается "0" D2010, Win7 |
Сообщ.
#74
,
|
|
|
Цитата сколько устройств будет? Чито мешает взять сразу готовую SCADA? На 32 точки большинство бесплатно, TraceMode например. MasterSCADAполучается что-то вроде куска SCADA, занимающегося только визуализацией)? Просто пока мои жалкие попытки приводят к каким-то разрозненным кускам кода например, сама по себе бесплатна. PascalSCADA под Лазарус. |
Сообщ.
#75
,
|
|
|
Всем привет.
Прикрутил к своей разработки компоненту для rs232 из этого проекта https://github.com/tarasii/1c_rs232 Кто может помочь прикрутить ModBus для rs485 ? команды имеют вот такой вид "CC0500051800EE" есть исходники от другой компоненты(работает через ком) где есть рабочий код. |