Модераторы: Snowy, MetalFan, bems, Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема с приёмом ответов на АТ команды 
V
    Опции темы
Xamilion
Дата 22.1.2008, 02:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 22.1.2008
Где: Планета ЗЕМЛЯ

Репутация: нет
Всего: нет



Уважаемые форумчане вот в чём проблема smile :
Код

procedure TForm1.Button31Click(Sender: TObject);
var
G:array[0..4095] of char;
s: WideString;
f: TMemoryStream;
begin
InBufLen:=SP.SendCommand('AT$FSRF=4,0,"G:\Music\SLAVJNKA.mid"'#13, 36, @G, 100);
 f := TMemoryStream.Create;
  f.Write(G, SizeOf(G));
  f.SaveToFile('C:\1.txt');
  f.Free;

end;

'AT$FSRF=4,0,"G:\Music\SLAVJNKA.mid"'-АТ команда по пересылки данных из мобилы в комп
36-длина передаваеммых даннных в телефон
G-буфер приёма ответа
100-задержка которая даёться телу на ответ(не уверен)
проблема в следую щем в буфер заноситься ответ только до файла сам файл не заноситься выглядит это так:
AT$FSRF=4,0,"G:\Music\SLAVJNKA.mid"

$FSRF: 4,0,"G:\Music\SLAVJNKA.mid",307
MThd
хотя порт монитор показывает следующее:
Запрос:19.01.2008 17:39:46.49464 (+0.0313 seconds)

Цитата

 41 54 24 46 53 52 46 3D 34 2C 30 2C 22 47 3A 5C   AT$FSRF=4,0,"G:\
 4D 75 73 69 63 5C 53 4C 41 56 4A 4E 4B 41 2E 6D   Music\SLAVJNKA.m
 69 64 22 0D                                       id".            

Ответ:19.01.2008 17:39:46.55664 (+0.0625 seconds)
Цитата

 0D 0A 24 46 53 52 46 3A 20 34 2C 30 2C 22 47 3A   ..$FSRF: 4,0,"G:
 5C 4D 75 73 69 63 5C 53 4C 41 56 4A 4E 4B 41 2E   \Music\SLAVJNKA.
 6D 69 64 22 2C 33 30 37 0D 0A 4D 54 68 64 00 00   mid",307..MThd..
 00 06 00 00 00 01 00 60 4D 54 72 6B 00 00 01 1D   .......`MTrk....
 00 FF 01 61 68 3A 2F 68 6F 6D 65 2F 75 36 38 39   .ÿ.ah:/home/u689
 34 2F 70 6F 6C 69 66 6F 6E 69 61 2E 72 75 2F 63   4/polifonia.ru/c
 67 69 2D 62 69 6E 2F 63 6F 6E 76 65 72 74 6F 72   gi-bin/convertor
 2F 72 74 74 74 6C 5F 6D 69 64 69 2F 63 6F 6E 76   /rtttl_midi/conv
 65 72 74 6F 72 2E 63 67 69 20 61 74 20 57 65 64   ertor.cgi at Wed
 20 4D 61 79 20 20 35 20 32 32 3A 34 39 3A 35 37    May  5 22:49:57
 20 32 30 30 34 00 FF 03 06 6D 65 6C 6F 64 79 00    2004.ÿ..melody.
 C0 00 00 FF 51 03 09 27 C0 00 90 48 7F 30 80 48   À..ÿQ..'À.H0€H
 00 00 90 49 7F 18 80 49 00 00 90 48 7F 30 80 48   ..I.€I..H0€H
 00 18 90 44 7F 30 80 44 00 00 90 43 7F 18 80 43   ..D0€D..C.€C
 00 00 90 41 7F 30 80 41 00 18 90 40 7F 30 80 40   ..A0€A..@0€@
 00 00 90 41 7F 18 80 41 00 00 90 43 7F 30 80 43   ..A.€A..C0€C
 00 48 90 40 7F 18 80 40 00 00 90 3C 7F 30 80 3C   .H@.€@..<0€<
 00 18 90 48 7F 30 80 48 00 00 90 49 7F 18 80 49   ..H0€H..I.€I
 00 00 90 48 7F 30 80 48 00 18 90 47 7F 30 80 47   ..H0€H..G0€G
 00 00 90 48 7F 18 80 48 00 00 90 4F 7F 30 80 4F   ..H.€H..O0€O
 00 18 90 50 7F 30 80 50 00 00 90 4F 7F 18 80 4F   ..P0€P..O.€O
 00 00 90 4D 7F 30 80 4D 00 00 FF 2F 00 0D 0A 4F   ..M0€M..ÿ/...O
 4B 0D 0A                                          K..
что надо сделать чтобы в буфере оказался полный ответ!!!
P.S.Я думаю это из-за того что массив char но может я и не прав!!!
Заранее спасибо от всех форумчан сайта http://www.s88.reklamaufa.ru!!!


Это сообщение отредактировал(а) Snowy - 22.1.2008, 16:57
PM MAIL ICQ   Вверх
VICTAR
Дата 22.1.2008, 03:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1108
Регистрация: 6.10.2006

Репутация: 10
Всего: 80



Попробуй
Код

 f.Write(G[0], SizeOf(G));


Добавлено через 2 минуты и 28 секунд
и попробуй заменить 
Код

 G: array[0..4095] of byte;

PM MAIL   Вверх
Xamilion
Дата 22.1.2008, 14:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 22.1.2008
Где: Планета ЗЕМЛЯ

Репутация: нет
Всего: нет



VIKTAR Cпасибо помогло smile !!!Плюс заслуженно твой!!(только я не могу его поставить говорит надо 100 постов smile !!!
Возник новый вопрос!
Вот файл который сохраняет прога
AT$FSRF=4,0,"G:\Music\SLAVJNKA.mid"

$FSRF: 4,0,"G:\Music\SLAVJNKA.mid",307
MThd       `MTrk   яah:/home/u6894/polifonia.ru/cgi-bin/convertor/rtttl_midi/convertor.cgi at Wed May  5 22:49:57 2004 яmelody А  яQ    'А ђH0ЂH  ђIЂI  ђH0ЂH ђD0ЂD  ђCЂC  ђA0ЂA ђ@0Ђ@  ђAЂA  ђC0ЂC Hђ@Ђ@  ђ<0Ђ< ђH0ЂH  ђIЂI  ђH0ЂH ђG0ЂG  ђHЂH  ђO0ЂO ђP0ЂP  ђOЂO  ђM0ЂM  я/ 
OK
Как можно сохранить только 3 строчку в файл не перегоняя из формата byte т.к. это и есть выгружаеммый файл?
И вобще как делать поиск по символам в byte?
Как расчитывать время на передачу в конце файла 4 строка приходит ОК можно это использовать а то в файл кроме ответа 5 строкой приходит и другая не нужная информация?


Это сообщение отредактировал(а) Xamilion - 22.1.2008, 14:17
PM MAIL ICQ   Вверх
VICTAR
Дата 22.1.2008, 16:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1108
Регистрация: 6.10.2006

Репутация: 10
Всего: 80



Тебе надо определить где начинается сам файл. Заканчивается он на "OK".
А далее с помощью Move копируешь в новый массив или куда там тебе еще надо.
PM MAIL   Вверх
Xamilion
Дата 22.1.2008, 16:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 22.1.2008
Где: Планета ЗЕМЛЯ

Репутация: нет
Всего: нет



Код

procedure TForm1.Button31Click(Sender: TObject);
var
G: array[0..4095] of byte;
K:array[0..4095] of byte;
s: WideString;
f: TMemoryStream;
f1 : TMemoryStream;
begin
InBufLen:=SP.SendCommand('AT$FSRF=4,0,"G:\Music\SLAVJNKA.mid"'#13, 36, @G, 100);

K=G[3];/////////////////////////////////////В этой строчке выдаёт ошибку
f1 := TMemoryStream.Create;
 f1.Write(K[0], SizeOf(K));
  f1.SaveToFile('C:\1.mid');
  f1.Free;

 f := TMemoryStream.Create;
 f.Write(G[0], SizeOf(G));
  f.SaveToFile('C:\1.txt');
  f.Free;

end;

А как поиск делать в вайле и как отправлять в другой массив только нужные данные(как вырезать)?
PM MAIL ICQ   Вверх
VICTAR
Дата 22.1.2008, 16:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1108
Регистрация: 6.10.2006

Репутация: 10
Всего: 80



Цитата(Xamilion @  22.1.2008,  16:16 Найти цитируемый пост)
K=G[3];/////////////////////////////////////В этой строчке выдаёт ошибку

Естественно. Ты массиву пытаешься присвоить элемент массива.
В массиве нет такого понятия "строчка".

Найди какую-либо закономерность, где начинается файл.
Код

f1 := TMemoryStream.Create;
 f1.Write(K[начало_файла], размер_копирования);
  f1.SaveToFile('C:\1.mid');
  f1.Free;


PS пользуйся кнопкой код

PM MAIL   Вверх
Xamilion
Дата 22.1.2008, 19:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 22.1.2008
Где: Планета ЗЕМЛЯ

Репутация: нет
Всего: нет



Код

procedure TForm1.Button31Click(Sender: TObject);
var
G: array[0..4095] of byte;
K:array[0..4095] of byte;
s: WideString;
f: TMemoryStream;
f1 : TMemoryStream;
begin
InBufLen:=SP.SendCommand('AT$FSRF=4,0,"G:\Music\SLAVJNKA.mid"'#13, 36, @G, 100);
f1 := TMemoryStream.Create;
 f1.Write(K[75],307);
  f1.SaveToFile('C:\1.mid');
  f1.Free;

 f := TMemoryStream.Create;
 f.Write(G[0], SizeOf(G));
  f.SaveToFile('C:\1.txt');
  f.Free;

end;

вытаскивает правильно только файл не работает
мне кажеться это из-за 
 f1.Write(K[75],307);
f1 : TMemoryStream;
эти две строчки наверно вайл в текст пытаються перегнать!!!
Нельзя ли как нибудь byte напрямую сохранить без переделок в другие форматы?
PM MAIL ICQ   Вверх
VICTAR
Дата 22.1.2008, 19:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1108
Регистрация: 6.10.2006

Репутация: 10
Всего: 80



Цитата(Xamilion @  22.1.2008,  19:23 Найти цитируемый пост)
Нельзя ли как нибудь byte напрямую сохранить без переделок в другие форматы? 

Никаких "переделок" и не происходит. 
Открой в каком-нибудь редакторе исходный файл и то, что получилось у тебя. 
Посмотри в чем отличия.
PM MAIL   Вверх
Xamilion
Дата 29.1.2008, 14:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 22.1.2008
Где: Планета ЗЕМЛЯ

Репутация: нет
Всего: нет



Вопрос ращён колько галку я поставить ни как не могу!!!
Тему можно удалять всем спасибо!!!
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0955 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.