Доброго всем!
Задача: дуалапно позвонить, и, по кнопочке, проиграть wav в линию.
Задача стара, но адекватного решения так и не нашел...
Не буду грузить кодом, дошел до сл.алгоритма:
Посылаем в com порт команды:
AT+FCLASS=8;+VSP=1;+VLS=14;+VGM=164;+VGS=250 // переход с голосовой режим, + режим телефона, громкость динамик/наушник
ATDT/123456
звонится, когда начинаются гудки, посылаем:
AT+VLS=1 // выбираем куда играть wav (1 - телефонная линия)
AT+VSM=1 // выбираем формат для проигрывания
AT+VTX // Начало передачи, после ответа CONNECT надо запихивать вавку в com порт
Теперь сабж:
как правильно запихать эту самую вавку?
Остановился на следующем:
FILE * fin;
char a;
fin = fopen("D:\\hello.wav","rb");
while(!feof(fin))
{
fread(&a,1,1,fin);
//WriteFile(hCom,&a,1,&Writ,NULL);
TransmitCommChar(hCom,a);
ClearCommBreak(hCom);
}
fclose(fin);
TransmitCommChar(hCom,0x10); // end transmit
TransmitCommChar(hCom,0x03);
Но, при попытке воспроизвести - слышится сильный шум по длительности приблизительно равный длительности записи. Попытки поиграться с форматом (AT+VSM...) ничего не дали - шум меняется, но все равно - ШУМ. Скорость на порту 115200.
Подскажите, в чем причина.
+ Что правильнее использовать в задаче: TransmitCommChar или WriteFile? На слух - разницы нет...
Заранее благодарен.