В той же DUE.uni писал(а): А где находится "движок", исполняющий скрипты?
ПЛК (Arduino Mega 2560 + W5100)
Модератор: Alex
Re: ПЛК (Arduino Mega 2560 + W5100)
- uni
- Сообщения: 191
- Зарегистрирован: Вс июл 26, 2015 9:21 pm
- Откуда: Екатеринбург
- Благодарил (а): 4 раза
- Поблагодарили: 7 раз
- Контактная информация:
Re: ПЛК (Arduino Mega 2560 + W5100)
Можно посмотреть на исходник интерпретатора скриптов?kanzler писал(а):В той же DUE.
Россия навсегда!
-
- Сообщения: 1115
- Зарегистрирован: Вс июн 14, 2015 11:08 am
- Благодарил (а): 85 раз
- Поблагодарили: 342 раза
Re: ПЛК (Arduino Mega 2560 + W5100)
https://svn.atozed.com:444/svn/Indy10/t ... ialFTP.pasalexsis_76 писал(а):uni у Вас случайно нет исходников TFTP клиента indy?
Юзер Indy-Public-RO без пароля
-
- Сообщения: 791
- Зарегистрирован: Пт янв 22, 2016 10:08 am
- Благодарил (а): 6 раз
- Поблагодарили: 63 раза
- uni
- Сообщения: 191
- Зарегистрирован: Вс июл 26, 2015 9:21 pm
- Откуда: Екатеринбург
- Благодарил (а): 4 раза
- Поблагодарили: 7 раз
- Контактная информация:
Re: ПЛК (Arduino Mega 2560 + W5100)
Наставлял тут товарища на путь истинный и похоже, что можно загружать файлы с web-странички напрямую, используя стандартные средства ajax. Это тоже надо попробовать.
1. Ссылка: upload file from browser to SD card .
1. Ссылка: upload file from browser to SD card .
Россия навсегда!
-
- Сообщения: 791
- Зарегистрирован: Пт янв 22, 2016 10:08 am
- Благодарил (а): 6 раз
- Поблагодарили: 63 раза
Re: ПЛК (Arduino Mega 2560 + W5100)
можно ,POST запросы и поехали,только надо учесть быстродействие карты.что можно загружать файлы с web-странички напрямую,
- uni
- Сообщения: 191
- Зарегистрирован: Вс июл 26, 2015 9:21 pm
- Откуда: Екатеринбург
- Благодарил (а): 4 раза
- Поблагодарили: 7 раз
- Контактная информация:
Re: ПЛК (Arduino Mega 2560 + W5100)
Отправка идёт по мере получения, т.е. неважно какое быстродействие. Я использовал этот способ заливки файлов в роутерах на основе OpenWrt, когда мне нужно было обновить прошивку роутера через web-интерфейс.
Россия навсегда!
- uni
- Сообщения: 191
- Зарегистрирован: Вс июл 26, 2015 9:21 pm
- Откуда: Екатеринбург
- Благодарил (а): 4 раза
- Поблагодарили: 7 раз
- Контактная информация:
Re: ПЛК (Arduino Mega 2560 + W5100)
Собрал виртуальную машину для отладки участков кода, не связанных с ethernet-картой (scmRTOS, sd-карта и пр.). Периодически буду её дополнять (архив нужно будет закачивать снова).
1. Виртуальная машина отладки (AVDM) .
1. Виртуальная машина отладки (AVDM) .
Россия навсегда!
-
- Сообщения: 791
- Зарегистрирован: Пт янв 22, 2016 10:08 am
- Благодарил (а): 6 раз
- Поблагодарили: 63 раза
Re: ПЛК (Arduino Mega 2560 + W5100)
Вот так обновляется в микрочипе
сама мордочка~inc:header.inc~
<div id="content">
<h1>File Uploads</h1>
<p>The HTTP server can accept file uploads via POST. This can be used for
many applications such as allowing users to upload configuration settings files.
Each application must implement its own file processor. This example
calculates the MD5 hash of any file.</p>
<form action="upload.htm" method="post" enctype="multipart/form-data">
<div class="examplebox">
~uploadedmd5~
<p style="margin-bottom: 2px"><b>File: </b>
<input type="file" name="md5file" size="30" />
<input type="submit" value="Get MD5" />
</p>
</div>
</form>
<p>This is an advanced feature. For more information, please refer to the
implementation in <code>CustomHTTPApp.c</code> for comments and explaination.</p>
</div>
<script type="text/javascript">
<!--
document.getElementById('hello').innerHTML = "~hellomsg~";
-->
</script>
~inc:footer.inc~
то что находится в микроконтроллере,считается MD5/*****************************************************************************
Function:
static HTTP_IO_RESULT HTTPPostMD5(void)
Summary:
Processes the file upload form on upload.htm
Description:
This function demonstrates the processing of file uploads. First, the
function locates the file data, skipping over any headers that arrive.
Second, it reads the file 64 bytes at a time and hashes that data. Once
all data has been received, the function calculates the MD5 sum and
stores it in curHTTP.data.
After the headers, the first line from the form will be the MIME
separator. Following that is more headers about the file, which we
discard. After another CRLFCRLF, the file data begins, and we read
it 16 bytes at a time and add that to the MD5 calculation. The reading
terminates when the separator string is encountered again on its own
line. Notice that the actual file data is trashed in this process,
allowing us to accept files of arbitrary size, not limited by RAM.
Also notice that the data buffer is used as an arbitrary storage array
for the result. The ~uploadedmd5~ callback reads this data later to
send back to the client.
Precondition:
None
Parameters:
None
Return Values:
HTTP_IO_DONE - all parameters have been processed
HTTP_IO_WAITING - the function is pausing to continue later
HTTP_IO_NEED_DATA - data needed by this function has not yet arrived
***************************************************************************/
#if defined(STACK_USE_HTTP_MD5_DEMO)
static HTTP_IO_RESULT HTTPPostMD5(void)
{
WORD lenA, lenB;
static HASH_SUM md5; // Assume only one simultaneous MD5
#define SM_MD5_READ_SEPARATOR (0u)
#define SM_MD5_SKIP_TO_DATA (1u)
#define SM_MD5_READ_DATA (2u)
#define SM_MD5_POST_COMPLETE (3u)
// Don't care about curHTTP.data at this point, so use that for buffer
switch(curHTTP.smPost)
{
// Just started, so try to find the separator string
case SM_MD5_READ_SEPARATOR:
// Reset the MD5 calculation
MD5Initialize(&md5);
// See if a CRLF is in the buffer
lenA = TCPFindROMArray(sktHTTP, (ROM BYTE*)"\r\n", 2, 0, FALSE);
if(lenA == 0xffff)
{//if not, ask for more data
return HTTP_IO_NEED_DATA;
}
// If so, figure out where the last byte of data is
// Data ends at CRLFseparator--CRLF, so 6+len bytes
curHTTP.byteCount -= lenA + 6;
// Read past the CRLF
curHTTP.byteCount -= TCPGetArray(sktHTTP, NULL, lenA+2);
// Save the next state (skip to CRLFCRLF)
curHTTP.smPost = SM_MD5_SKIP_TO_DATA;
// No break...continue reading the headers if possible
// Skip the headers
case SM_MD5_SKIP_TO_DATA:
// Look for the CRLFCRLF
lenA = TCPFindROMArray(sktHTTP, (ROM BYTE*)"\r\n\r\n", 4, 0, FALSE);
if(lenA != 0xffff)
{// Found it, so remove all data up to and including
lenA = TCPGetArray(sktHTTP, NULL, lenA+4);
curHTTP.byteCount -= lenA;
curHTTP.smPost = SM_MD5_READ_DATA;
}
else
{// Otherwise, remove as much as possible
lenA = TCPGetArray(sktHTTP, NULL, TCPIsGetReady(sktHTTP) - 4);
curHTTP.byteCount -= lenA;
// Return the need more data flag
return HTTP_IO_NEED_DATA;
}
// No break if we found the header terminator
// Read and hash file data
case SM_MD5_READ_DATA:
// Find out how many bytes are available to be read
lenA = TCPIsGetReady(sktHTTP);
if(lenA > curHTTP.byteCount)
lenA = curHTTP.byteCount;
while(lenA > 0u)
{// Add up to 64 bytes at a time to the sum
lenB = TCPGetArray(sktHTTP, curHTTP.data, (lenA < 64u)?lenA:64);
curHTTP.byteCount -= lenB;
lenA -= lenB;
MD5AddData(&md5, curHTTP.data, lenB);
}
// If we've read all the data
if(curHTTP.byteCount == 0u)
{// Calculate and copy result to curHTTP.data for printout
curHTTP.smPost = SM_MD5_POST_COMPLETE;
MD5Calculate(&md5, curHTTP.data);
return HTTP_IO_DONE;
}
// Ask for more data
return HTTP_IO_NEED_DATA;
}
return HTTP_IO_DONE;
}
#endif // #if defined(STACK_USE_HTTP_MD5_DEMO)
- nightwind
- Сообщения: 333
- Зарегистрирован: Вс июн 26, 2016 4:42 pm
- Откуда: Барановичи
- Благодарил (а): 28 раз
- Поблагодарили: 52 раза
- Контактная информация:
Re: ПЛК (Arduino Mega 2560 + W5100)
Господа изобретают велосипед из пакетов для мусора? Ваш проект надо писать на Brainfuck), будет еще круче!
Зачем, ЗАЧЕМ лепить ртос еще и с интерпретатором в таком дохлом камне?? тут интерес или академический чисто, или автор фанат авр? возьми за 3 доллара esp8266 - и проц в разы лучше, и памятей на порядок больше. а лучше stm32, где тебе и дма и езернет и милилон гпио.
пс. не стеб, просто вспомнил себя в детстве, когда накупил за копейки аттини, и все делал на них. По 3 ночи оптимизаций, когда не хватает 4 байт флэша)
Зачем, ЗАЧЕМ лепить ртос еще и с интерпретатором в таком дохлом камне?? тут интерес или академический чисто, или автор фанат авр? возьми за 3 доллара esp8266 - и проц в разы лучше, и памятей на порядок больше. а лучше stm32, где тебе и дма и езернет и милилон гпио.
пс. не стеб, просто вспомнил себя в детстве, когда накупил за копейки аттини, и все делал на них. По 3 ночи оптимизаций, когда не хватает 4 байт флэша)