PDA-версия форума ASUSMobile.RU

Поиск - Профиль - Войти и проверить личные сообщения - Вход - Регистрация
Форум Asus Mobile Club Russia > Полезное > Раздел Разработчика и Программиста > RIL_SendMsg


[Ответить на тему]

Тошик [28.08.09, 14:00] RIL_SendMsg:
Всем привет!

Мне хочется поюзать функцию RIL_SendMsg() под C#, и у меня не очень получается Sad

Есть такая функция, которая может слать СМС через RIL. Я никак не могу разрулить на C# структуру RILMESSAGE.

HRESULT RIL_SendMsg(
HRIL hRil,
const RILMESSAGE* lpMessage,
DWORD dwOptions
);

Не мог бы быть кто так любезен выложить просто ДАМП байтов, который получится при отправке произвольного сообщения (а также какое использовать в данном случае dwOptions).

Я уже долго курю ril.h, вот кусок из нее:

typedef struct rilmessage_tag {
DWORD cbSize; // @field structure size in bytes
DWORD dwParams; // @field indicates valid parameters
RILADDRESS raSvcCtrAddress; // @field service center address
DWORD dwType; // @field type of message
DWORD dwFlags; // @field message flags
union { // @field UNION MEMBER
struct { // @field RIL_MSGTYPE_IN_DELIVER
RILADDRESS raOrigAddress; // @field originating address
DWORD dwProtocolID; // @field message protocol
RILMSGDCS rmdDataCoding; // @field data coding scheme
SYSTEMTIME stSCReceiveTime; // @field receive time (UTC)
DWORD cbHdrLength; // @field length of header in bytes
DWORD cchMsgLength; // @field length of body in bytes
BYTE rgbHdr[MAXLENGTH_HDR]; // @field header buffer
BYTE rgbMsg[MAXLENGTH_MSG]; // @field body buffer
} msgInDeliver; // @field End RIL_MSGTYPE_IN_DELIVER

struct { // @field RIL_MSGTYPE_IN_STATUS
DWORD dwTgtMsgReference; // @field target message reference
RILADDRESS raTgtRecipAddress; // @field receipient address
SYSTEMTIME stTgtSCReceiveTime; // @field receipient receive time (UTC)
SYSTEMTIME stTgtDischargeTime; // @field receipient dischage time (UTC)
DWORD dwTgtDlvStatus; // @field delivery status
DWORD dwProtocolID; // @field message protocol
RILMSGDCS rmdDataCoding; // @field data coding scheme
DWORD cbHdrLength; // @field length of header in bytes
DWORD cchMsgLength; // @field length of body in bytes
BYTE rgbHdr[MAXLENGTH_HDR]; // @field header buffer
BYTE rgbMsg[MAXLENGTH_MSG]; // @field body buffer
} msgInStatus; // @field End RIL_MSGTYPE_IN_STATUS

struct { // @field RIL_MSGTYPE_OUT_SUBMIT
RILADDRESS raDestAddress; // @field destination address
DWORD dwProtocolID; // @field message protocol
RILMSGDCS rmdDataCoding; // @field data coding scheme
DWORD dwVPFormat; // @field TBD
SYSTEMTIME stVP; // @field relative validity period (values are expressed relative to the current time)
DWORD cbHdrLength; // @field length of header in bytes
DWORD cchMsgLength; // @field length of body in bytes
BYTE rgbHdr[MAXLENGTH_HDR]; // @field header buffer
BYTE rgbMsg[MAXLENGTH_MSG]; // @field body buffer
} msgOutSubmit; // @field RIL_MSGTYPE_OUT_SUBMIT

struct { // @field RIL_MSGTYPE_OUT_COMMAND
DWORD dwProtocolID; // @field message protocol
DWORD dwCommandType; // @field command type
DWORD dwTgtMsgReference; // @field target message reference
RILADDRESS raDestAddress; // @field destination address
DWORD cbCmdLength; // @field length of command in bytes
BYTE rgbCmd[MAXLENGTH_CMD]; // @field command buffer
} msgOutCommand; // @field RIL_MSGTYPE_OUT_COMMAND

struct { // @field RIL_MSGTYPE_BC_GENERAL
DWORD dwGeoScope; // @field message protocol
DWORD dwMsgCode; // @field message code
DWORD dwUpdateNumber; // @field update number
DWORD dwID; // @field identity
RILMSGDCS rmdDataCoding; // @field data coding scheme
DWORD dwTotalPages; // @field total number of pages
DWORD dwPageNumber; // @field current page number
DWORD cchMsgLength; // @field length of message in bytes
BYTE rgbMsg[MAXLENGTH_MSG]; // @field message buffer
} msgBcGeneral; // @field RIL_MSGTYPE_BC_GENERAL

struct {
DWORD cchMsgLength; // @field length of body in bytes
BYTE rgbMsg[MAXLENGTH_MSG]; // @field message buffer
} msgOutRaw; // @field RIL_MSGTYPE_OUT_RAW
};
} RILMESSAGE, *LPRILMESSAGE;

Меня интересует в разрезе msgOutRaw и msgOutSubmit

И правда ли, что эта функция работает только в WM6 ?

p.s. То ли 750 не поддерживает ее, то ли нет в сети ни одного рабочего примера Sad А дальше я уже сам, как только у меня заработает на примере.

БОЛЬШОЕ ЧЕЛОВЕЧЕСКОЕ СПАСИБО! icon_smile

[Ответить на тему]   Ответить с цитатой   
LiquidStorm [30.08.09, 23:32] :
Тошик
Судя по http://msdn.microsoft.com/en-us/library/aa918585.aspx эта функция не поддерживается в ВинМобайл, только в ВинСЕ. Это подтверждает и тот факт, что в большинстве тредов по RIL_SendMsg() в результате работы возникает ошибка E_INVALIDARG

[Ответить на тему]   Ответить с цитатой   
Тошик [31.08.09, 02:09] :
Як прикро Censored Спасибо.
Как все просто было в J2ME - классы MessageConnector, BinarySMS ... И аналога Push Registry в compact framework кроме убогого MessageInterceptor нету. И функция SQL сервер compact 'IsNull' вообще булевая. И домены не поддерживаются. И Icon из хэндла битмапа не получить. Я в шоке Wacko

[Ответить на тему]   Ответить с цитатой   
LiquidStorm [31.08.09, 16:02] :
Тошик
Может это поможет - http://msdn.microsoft.com/en-us/library/aa458811.aspx
Здесь - http://forum.soft32.com/pda/MMS-MAPI-ftopict60431.html пишут что SMS/E-Mail отправляют без проблем, с MMS не работает потому, что встроенного клиента от МС нету, но, собственно, MMS и не просили icon_smile

[Ответить на тему]   Ответить с цитатой   
Тошик [01.09.09, 17:00] :
Спасибо, LiquidStorm, отправить обычную СМС проблем не составляет - я использую пространство имен Microsoft.PocketOutlook, и все классно отправляется, но вот весь смысл чтобы построить руками PDU пакет (например, полазить в DCS, чтобы было FlashSMS). К сожалению, стандартными средствами на КПК я не могу выставить все 8 бит DCS как мне нужно (а посредством Asus + Siemens или PC + Siemens могу icon_smile )

[Ответить на тему]   Ответить с цитатой   
LiquidStorm [01.09.09, 18:30] :
Тошик
Ага, теперь понятно в чем специфика... К сожалению, средствами MS этого не сделать, да и RIL зачастую на Асусах весьма ограничен в функционале и, местами, кривоват. Если чего на глаза полезное попадется - отпишусь.

[Ответить на тему]   Ответить с цитатой   
Тошик [02.09.09, 22:40] :
А какой можешь посоветовать КПК, в котором RIL прямой, и самое главное - есть доступ к внутреннему модему (а также есть служба bluetiith com port)?

[Ответить на тему]   Ответить с цитатой   
LiquidStorm [02.09.09, 23:17] :
Тошик
Из тех, что держал в руках - HTC в этом контексте лучше, более полно реализован RIL. На счет доступа к модему и блютуса точно не знаю, стек от МС убогий, если сравнивать с броадком/видком, возможно, ком-порт там был только в виде DUN-профиля. Стоит проверить модели как на интеловской, так и квалкомовской платформе.

Еще лучше в смысле полного управления радиомодулем были модели с WM2003, в них факс-модем был прямо доступен из приложений.

Также стоит "копнуть" в сторону гуглофонов - возможно там работа с радиомодулем более "прозрачна"...

[Ответить на тему]   Ответить с цитатой   
Тошик [04.09.09, 11:52] :
На гуглофонах, похоже, те же траблы - встречал на форумах крики о помощи гуглофонистов по поводу COM порта.

[Ответить на тему]   Ответить с цитатой   
LiquidStorm [04.09.09, 12:11] :
Тошик
Жаль, платформа вроде как более открытая должна была быть. Хотя, может люди просто не "докопались" до истины еще ...

[Ответить на тему]   Ответить с цитатой   

[Ответить на тему]

Форум Asus Mobile Club Russia > Полезное > Раздел Разработчика и Программиста > RIL_SendMsg