Пишем лог на SD карточку

Обсуждение аппаратной части ("железо"). Discussion about hardware.

Moderator: STC

serge__5518
LQFP112 - Up with the play
Posts: 200
Joined: Sat Jun 09, 2012 11:12 am

Re: Пишем лог на SD карточку

Post by serge__5518 »

Dmitrich2 wrote: Да добавляются и в TxD и в RxD, видно что обмен идет, а информации нет.
Должно все работать.
Оправлю экзешник, может что с ним.
Вообще там простая проверка. Можно посмотреть в терминале , что приходит.
Attachments
LConsolProject.zip
(458.88 KiB) Downloaded 750 times
ВАЗ 2103 , Secu-3 (m32),
ДАД GM Daewoo, ДТОЖ 23.3828,
Катушка 2111-3705010
Dmitrich2
LQFP112 - Up with the play
Posts: 248
Joined: Tue Dec 07, 2010 9:36 am

Re: Пишем лог на SD карточку

Post by Dmitrich2 »

Логера сейчас под рукой нет, пробовал с терминала подаю ответный сигнал
!#0056LoggerSD V1.0 for SECU006700451B6D9D00000000\r
но ни чего не выводится.
serge__5518
LQFP112 - Up with the play
Posts: 200
Joined: Sat Jun 09, 2012 11:12 am

Re: Пишем лог на SD карточку

Post by serge__5518 »

Ок!
Вечером посмотрю. Сейчас на работе....
ВАЗ 2103 , Secu-3 (m32),
ДАД GM Daewoo, ДТОЖ 23.3828,
Катушка 2111-3705010
serge__5518
LQFP112 - Up with the play
Posts: 200
Joined: Sat Jun 09, 2012 11:12 am

Re: Пишем лог на SD карточку

Post by serge__5518 »

Dmitrich2 wrote:Логера сейчас под рукой нет, пробовал с терминала подаю ответный сигнал
!#0056LoggerSD V1.0 for SECU006700451B6D9D00000000\r
но ни чего не выводится.
Ничего особого в голову не приходит. Поэтому повторюсь.
Проверка там простая:
1) if(FCurrentCommand.packed.hostRequest==LOGGER_ANSWER) проходит == !
2) if(tChar == LAST_SYMBOL_BLOCK && tCount == tCountRxD) тут надо определится что такое "\r" должен быть байт 0xD
3) switch(FCurrentCommand.packed.commandID) проходит == #

Если эта строка с терминала, то надо смотреть п.2
ВАЗ 2103 , Secu-3 (m32),
ДАД GM Daewoo, ДТОЖ 23.3828,
Катушка 2111-3705010
Dmitrich2
LQFP112 - Up with the play
Posts: 248
Joined: Tue Dec 07, 2010 9:36 am

Re: Пишем лог на SD карточку

Post by Dmitrich2 »

Добрый день serge__5518!

Заметил следующее при передачи одного пакета RxD фиксирует почемуто три пакета.
serge__5518
LQFP112 - Up with the play
Posts: 200
Joined: Sat Jun 09, 2012 11:12 am

Re: Пишем лог на SD карточку

Post by serge__5518 »

Dmitrich2 wrote: Заметил следующее при передачи одного пакета RxD фиксирует почемуто три пакета.
Это могут быть особенности реализации класса компорта и windows.
Консоль подсчитывает количество пакетов по прерыванию компорта. Конечно это "немного не правильно"-)
Стоило сделать по другому. Но, на момент написания казалось этого достаточно (индикация процесса обмена)-)
Так, как Вы в терминале вводите '\r'?
ВАЗ 2103 , Secu-3 (m32),
ДАД GM Daewoo, ДТОЖ 23.3828,
Катушка 2111-3705010
Dmitrich2
LQFP112 - Up with the play
Posts: 248
Joined: Tue Dec 07, 2010 9:36 am

Re: Пишем лог на SD карточку

Post by Dmitrich2 »

serge__5518 wrote: Так, как Вы в терминале вводите '\r'?
Вводил по разному '\r', $0D, $0D$0A. результат одинаков.
А как собрать исходник на консоль?
serge__5518
LQFP112 - Up with the play
Posts: 200
Joined: Sat Jun 09, 2012 11:12 am

Re: Пишем лог на SD карточку

Post by serge__5518 »

Dmitrich2 wrote:Вводил по разному '\r', $0D, $0D$0A. результат одинаков.
Просто если 52 символом не будет байт 0xD посылка не пройдет в консоль
Dmitrich2 wrote: А как собрать исходник на консоль?
Это проект для CodeGear (CodeGear™ RAD Studio 2009 Version 12.0.3170.16989 Copyright © 2008 ).
В принципе, проект можно собрать проект из этих файлов для Builder 5 (6) ( добавив файлы и установив компонент commport)
В CodeGear тоже надо добавить компонент commport.
ВАЗ 2103 , Secu-3 (m32),
ДАД GM Daewoo, ДТОЖ 23.3828,
Катушка 2111-3705010
Dmitrich2
LQFP112 - Up with the play
Posts: 248
Joined: Tue Dec 07, 2010 9:36 am

Re: Пишем лог на SD карточку

Post by Dmitrich2 »

Добрый день serge__5518!

Установил CodeGear, добавив файлы и установил компонент commport, но при комлиляции выдает три ошибки:
[BCC32 Error] LConsol.cpp(1402): E2034 Cannot convert 'wchar_t *' to 'const char *'
[BCC32 Error] LConsol.cpp(1402): E2342 Type mismatch in parameter '__src' (wanted 'const char *', got 'wchar_t *')
[BCC32 Error] LConsol.cpp(1680): E2085 Invalid pointer addition
что может быть?
serge__5518
LQFP112 - Up with the play
Posts: 200
Joined: Sat Jun 09, 2012 11:12 am

Re: Пишем лог на SD карточку

Post by serge__5518 »

Dmitrich2 wrote:Установил CodeGear, добавив файлы и установил компонент commport, но при комлиляции выдает три ошибки:
[BCC32 Error] LConsol.cpp(1402): E2034 Cannot convert 'wchar_t *' to 'const char *'
[BCC32 Error] LConsol.cpp(1402): E2342 Type mismatch in parameter '__src' (wanted 'const char *', got 'wchar_t *')
Добрый день Dmitrich2!
Это компилятор ругается на некорректное преобразование типа переменной.
По номеру строки (1402) это следующее выражение в исходнике:
// StringID
strncpy(
&FCurrentCommand.packed.data[tCount],
LoggerIdEdit->Text.c_str(),SIZE_LOGGER_ID);
функция strncpy определена так :
char * strncpy ( char * destination, const char * source, size_t num )
Значит ругается на const char * source == LoggerIdEdit->Text.c_str()
Выходит , у Вас LoggerIdEdit->Text.c_str() возвращает тип wchar_t * вместо const char *
У меня (CodeGear™ RAD Studio 2009) не ругается на эту строку.
Вот пример преобразования:
wchar_t tTemp[] = L"TEST";
AnsiString tStr(tTemp);
const char* tChar = tStr.c_str();

Вам можно сделать так:
// StringID
AnsiString tTempStr( LoggerIdEdit->Text.c_str());
strncpy(&FCurrentCommand.packed.data[tCount], tTempStr.c_str(),SIZE_LOGGER_ID);


Dmitrich2 wrote: [BCC32 Error] LConsol.cpp(1680): E2085 Invalid pointer addition
что может быть?
Наверно речь идет об этой строке:
tStatusPort = " открыт "+
IntToStr(CommPort->Baud)+" бод/сек";

Здесь тоже проблема в преобразовании типов.
Попробуйте так
tStatusPort = AnsiString(" открыт ")+
IntToStr(CommPort->Baud)+AnsiString(" бод/сек");
ВАЗ 2103 , Secu-3 (m32),
ДАД GM Daewoo, ДТОЖ 23.3828,
Катушка 2111-3705010
Post Reply