On-line: гостей 2. Всего: 2 [подробнее..]
АвторСообщение



ссылка на сообщение  Отправлено: 15.09.16 09:32. Заголовок: Чтение инфы из текстового файла


Добрый день,

Поделитесь, пожалуйста, ссылкой или примером работы с текстовым файлом (чтение/запись) на контролере.

Спасибо!

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 9 [только новые]





ссылка на сообщение  Отправлено: 15.09.16 09:59. Заголовок: в хелпе вроде есть пример


В хелпе у SIMPL+ вроде есть пример работы: File Functions Overview

STRING sBuf[1000];

SIGNED_INTEGER nFileHandle;

CHANGE input

{

SIGNED_INTEGER nNumRead;

StartFileOperations();

nFileHandle = FileOpen ( "\\CF0\\MyFile", _O_RDONLY );



if ( nFileHandle >= 0 )

{

nNumRead=FileRead( nFileHandle, sBuf, 500);



Print ("Read Error\n");

FileClose( nFileHandle );

}

EndFileOperations();

}

/*******************************************************************************************

Main()

Uncomment and place one-time startup code here

(This code will get called when the system starts up)

*******************************************************************************************/

Function Main()

{

SIGNED_INTEGER nNumWritten;

StartFileOperations();

nFileHandle = FileOpen ( "\\CF0\\MyFile", _O_WRONLY );

if ( nFileHandle >= 0 )

{

sBuf = "Hello World!";

nNumWritten=FileWrite( nFileHandle, sBuf, 500 );

if(nNumWritten<0) Print ("WriteError");

FileClose( nFileHandle );

}

EndFileOperations();

}



\\СF0\\ - это Compact Flash
\\NVRAM\\ - это память контроллера


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




ссылка на сообщение  Отправлено: 15.09.16 10:04. Заголовок: Интересная тема, пол..


Интересная тема, полезная.
Программа выше - пишет один раз и потом затирает данные новой записью.
Общие подходы есть в help для S+.

А так делаю я:

Digital_Input Write;
Analog_input Temp;
SIGNED_INTEGER nFileHandle;
STRING sBuf[7];
Change Write { StartFileOperations();
sBuf = ITOA(Temp)+"\n";
nFileHandle = FileOpenShared ( "\\CF0\\hvac.txt", _O_WRONLY | _O_APPEND);
IF (nFileHandle >= 0)
{
if( FileWrite(nFileHandle, sBuf, 7) > 0 )
PRINT ( "Wrto: %s\n", sBuf );
IF ( FileClose ( nFileHandle ) <> 0 )
PRINT ( "Err\n" );
}
EndFileOperations();
}

Эта программа пишет на флешку SD илии CF параметр Temp (в файл hvac.txt) колонку.
Если перед ним вписывать время, то очень удобно открывать такой файл табличным редактором Excel или Numbers и смотреть изменения во времени и строить графики.Очень помогает, например при анализе работы датчиков температуры или освещенности на реальной инсталляции.
Как всегда, есть разница для 2-й и 3-ей серии процессоров, такое нужно учитывать, чем будете читать данные и как применять. Все нужно планировать заранее, до того, как бросаться писать собственно программу.
Я, например пишу данные в такую таблицу каждые 15 минут.
Очень когда то помогло при анализе утечек тепла, понять, что нужно над одной из комнат утеплить чердак.

Если нужно, дам рабочие тексты программ.

Спасибо: 0 
ПрофильЦитата Ответить



ссылка на сообщение  Отправлено: 15.09.16 10:11. Заголовок: ну тут


все зависит от задачи...

Спасибо: 0 
ПрофильЦитата Ответить



ссылка на сообщение  Отправлено: 15.09.16 18:02. Заголовок: Спасибо, сегодня поп..


Спасибо, сегодня попробую!
У меня задача разбить управление на пользователей с правами. То есть в файл буду записывать имя пользователя, пароль, ну и еще пару столбцов данных.
Игорь K. Если можно примеры, очень благодарен!

Спасибо: 0 
ПрофильЦитата Ответить





ссылка на сообщение  Отправлено: 16.09.16 00:19. Заголовок: Я в файлы сохранял л..


Я в файлы сохранял логи и считывал ИК строки для GlobalCache.
Вот только с 3 серией, все попытки считать из файла строку заканчивались неудачей. Причину до сих пор не пойму. Скорее всего как то не так путь указывается. Пути работающие во второй серии, с 3 серией не канали.
Игорь, есть пример рабочего пути к файлу на 3 серии контроллеров? Поделитесь пожалуйста.

Спасибо: 0 
ПрофильЦитата Ответить



ссылка на сообщение  Отправлено: 16.09.16 08:37. Заголовок: а можно...


во-первых, посмотреть, где этот файл находится реально в File Browser контроллера и сравнить с тем путем, который прописан в программе.
В контроллерах 3-ей серии он располагается в NVRAM (если Вы используете путь \\NVRAM\\) в папке с именем Вашего проекта (у контроллеров 2-ой серии такого нет). Потом я бы просто скачала этот файл на комп и прочитала бы его блокнотом. Ну чтобы проверить, что файл не поврежден.
Я на CP3 работала с файлом в \\NVRAM\\ - все ОК

Ну и надо проверить сам модуль работы с файлом, может где там ошибка. Ну выложите или пришлите в ЛС, если хотите.

Спасибо: 0 
ПрофильЦитата Ответить





ссылка на сообщение  Отправлено: 17.09.16 00:51. Заголовок: Если использовать CF..


Если использовать CF на DIN-AP3, как будет выглядеть путь к файлу data.txt ?

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




ссылка на сообщение  Отправлено: 17.09.16 10:21. Заголовок: В CP3 (как и в АР3) ..


В CP3 (как и в АР3) съемная SD карта, путь к ней: \\RM\\data.txt" (Removable media)

По данным File Manager, в 3-ей серии есть еще том на внутренней памяти \\CF, в него, как и в любой другой тоже можно записывать и считывать данные.

И чтобы Шаббат два раза не нарушать несколько строк формирования метки времени из (Clock Driver):

#DEFAULT_VOLATILE
BUFFER_INPUT From$[100];
ANALOG_OUTPUT Hour,Minute;
STRING_OUTPUT TimeStrobe;
CHANGE From$
{
Hour = atoi(mid(From$, 9, 2));
Minute = atoi(mid(From$, 11, 2));
If(Minute<10 && Hour<10)
{
TimeStrobe= "0"+ITOA(Hour)+":"+"0"+ITOA(Minute);
}
Else IF(Minute<10 && Hour>9)
{
TimeStrobe= ITOA(Hour)+":"+"0"+ITOA(Minute);
}
Else IF(Minute>9 && Hour<10)
{
TimeStrobe= "0"+ITOA(Hour)+":"+ITOA(Minute);
}
Else
{
TimeStrobe= ITOA(Hour)+":"+ITOA(Minute);
}
CLEARBUFFER(From$);
}


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




ссылка на сообщение  Отправлено: 30.09.16 17:31. Заголовок: Попробуйте пример, к..


Попробуйте пример, как записывать и анализировать данные с внешнего носителя

Weather Record Module

Внутри описание на русском и рабочий пример.

Готовится подобное описание для случая с чтением данных процессором Crestron.

Спасибо: 0 
ПрофильЦитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 17
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет