Собственно. Написана программа, которая отправляет и получает 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)
Может мне кто-нибудь объяснить, в чём может быть причина?