Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit3ba4792

Browse files
committed
fix: position calculations
1 parent3b1d7f7 commit3ba4792

File tree

1 file changed

+20
-8
lines changed

1 file changed

+20
-8
lines changed

‎src/FileTransferModule.cpp‎

Lines changed: 20 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,12 @@ void FileTransferModule::loop(bool configured)
2525
// check lastAction
2626
// close file or directory after HEARTBEAT_INTERVAL
2727

28+
if (_fileOpen &&delayCheck(_lastAccess,5000))
29+
{
30+
_file.flush();
31+
logInfoP("File flushed due no activity");
32+
}
33+
2834
if (_fileOpen &&delayCheck(_heartbeat, HEARTBEAT_INTERVAL))
2935
{
3036
_file.close();
@@ -147,8 +153,7 @@ void FileTransferModule::writeFile(uint16_t sequence, uint8_t *data, uint8_t len
147153

148154
if (_lastSequence +1 != sequence)
149155
{
150-
logDebugP("Not continous sequence - seek to position [expected %i, got %i]", _lastSequence +1, sequence);
151-
uint16_t pos = ((sequence -1) * (_size -3));
156+
uint32_t pos = ((sequence -1) * (_size -3));
152157
logDebugP("Not continous sequence - seek to position %d [expected %i, got %i]", pos, _lastSequence +1, sequence);
153158
if (!_file.seek(pos))
154159
{
@@ -161,15 +166,17 @@ void FileTransferModule::writeFile(uint16_t sequence, uint8_t *data, uint8_t len
161166
logDebugP("Seeked to position %d", _file.position());
162167
}
163168

169+
#ifdef OPENKNX_DEBUG
164170
size_t filePos = _file.position();
171+
#endif
165172
uint8_t written = _file.write((constuint8_t *)data +3, data[2]);
166173
logDebugP("Write sequence %i (%i/%i bytes) %i.%i", sequence, written, data[2], filePos, _file.position());
167174

168-
if (sequence %10 ==0)
169-
{
170-
logDebugP("Flush file");
171-
_file.flush();
172-
}
175+
//if (sequence % 10 == 0)
176+
//{
177+
// logDebugP("Flush file");
178+
// _file.flush();
179+
//}
173180

174181
if (written != data[2])
175182
{
@@ -519,7 +526,12 @@ void FileTransferModule::cmdFileUpload(uint8_t length, uint8_t *data, uint8_t *r
519526
if (data[0] ==0x00 && data[1] ==0x00)
520527
{
521528
constchar *filename = (constchar *)(data +4);
522-
if (checkOpenFile(resultData, resultLength) ||checkOpenDir(resultData, resultLength))return;
529+
if (_fileOpen)
530+
{
531+
_file.flush();
532+
_file.close();
533+
}
534+
if (checkOpenDir(resultData, resultLength))return;
523535

524536
if(data[3] >1)
525537
{

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp