Проблема с SerialPort при отправке SMS-ок
От: vasalvit  
Дата: 11.01.07 15:38
Оценка:
Собственно. Написана программа, которая отправляет и получает SMS-ки из COM-порта. Длинные SMS-ки она правильно разбивает.
Если длинну всех SMS-ок ограничивать в 115 латинских символов, то всё работает прекрасно. Если же длинну ограничивать в 160 латинских символов, то при попытке записать SMS-ку в порт появляется исключение:

System.IO.IOException: A device attached to the system is not functioning.

   at System.IO.Ports.InternalResources.WinIOError(Int32 errorCode, String str)
   at System.IO.Ports.SerialStream.EndWrite(IAsyncResult asyncResult)
   at System.IO.Ports.SerialStream.Write(Byte[] array, Int32 offset, Int32 count, Int32 timeout)
   at System.IO.Ports.SerialPort.Write(String text)
   at GSMModemApp.SMSModem.WriteLine(String a_line) in E:\Work\projects\GSMModem\GSMModem_1.1\GSMModemApp\SMSModem.cs:line 1114


Для примера. Вот SMS-ка, которая вываливает исключение в моей программе, но прекрасно отправляется в виде одного сообщения в том же HyperTerminal:

0011000C9173257960442600F1A79BD6E01459044D9F4FE174882C3A93451054
9A742683D4A70B347D1E99C1A9F309D206974FE79318A4169953AAB50A920A41
5069728A6426A945903538452641D0E014FA94529DC9228818743A9345106A5A
9426832CE7B3599482A0C129F429A50659A065B1094A8296CF233108B2268941
270B440C5283206B708A2C1E9F20E9538B24169DC9600A


Вот её расшифровка в PDUSpy:

PDU LENGTH IS 151 BYTES
NO SMSC ADDRESS PRESENT
MESSAGE HEADER FLAGS
    MESSAGE TYPE :    SMS SUBMIT
    REJECT DUPLICATES :    NO
    VALIDITY PERIOD :    RELATIVE
    REPLY PATH :    NO
    USER DATA HEADER :    NO UDH
    REQ. STATUS REPORT :    NO
    MSG REFERENCE NR. :    0 (0x00)

DESTINATION ADDRESS
    NUMBER IS :    +375297064462
    TYPE OF NR. :    International
    NPI :    ISDN/Telephone (E.164/163)

PROTOCOL IDENTIFIER    (0x00)
    MESSAGE ENTITIES :    SME-to-SME
    PROTOCOL USED :    Implicit / SC-specific

DATA CODING SCHEME    (0xF1)
    MESSAGE CLASS :    1 (ME-specific)
    MESSAGE CODING :    7bit default

VALIDITY OF MESSAGE :    24,0 hrs

USER DATA PART OF SM
    USER DATA LENGTH :    155 septets
    USER DATA (TEXT) :    VASHE SOOBSCHENIE PRINIATO. SOGLASNO 
        ZAKONODATELSTVU RB PRISHLITE VASHI 
        PASPORTNIE DANNIE (SERIA,NOMER PASPORTA,
         KEM I KOGDA VIDAN, DATA VASHEGO 
        ROZHDENIA)


Может мне кто-нибудь объяснить, в чём может быть причина?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.