Hey all , I am new to TAPI i have read a lot of your posts out there and now ready to start my eVC++ 4.xx to start a program to establish data calls from my XDAii with a remote car module.
I would like to know , if there is a different TAPI function to make a voice call or a data call?
thanks.
no
only after data call establish you must get seril-port descriptor from TAPI, setup serial-port and recive/send data via this port
Ok - so i establish a call by using the following function call with all the necessary line initialization of course.
Code:
lTapiReturn = lineMakeCall(hLine, &hCall, DialNumber, 0, &LineCallParams);
Now i would like to collect the data somehow. I'm assuming that i shall use CreateFile then ReadFile right ?
Code:
hPort = CreateFile (lpszPortName, GENERIC_READ | GENERIC_WRITE,
0, NULL, OPEN_EXISTING,0, NULL);
Am i right to assume that the data should be read from lpszPortName ??How would u initialize lpszPortName ? Any particular time outs or special considerations to take in accoutn ?? and would anybody know ant good example to use create and read file functions ?
Thanks for your help.
lineGetID
1) Could you specify a bit more ? Once my connection is established (CreateFile) i should call lineGetId to specifify what exactly ? I'm confused even after reading the help.
2) Shall i specify
Code:
lpszPortName= L"COM1:";
?? Is it right to assume that the data will be read through the serial port COM1 and not the Virtual Port COM 9 ?
3)
PortDCB.BaudRate = 115200;
Click to expand...
Click to collapse
I'e read through this forum that the BaudRate should be set to 115200 however the CSD connection specified by the network is 9600 v.32. Any ideas or comments for this ?
Related
Hello.
I've to solve next project:
I have Pocket PC with GSM-module and measuring instrument, which is connected to the Pocket PC. This instrument is measuring in real-time and software is questioning this instrument. Then the software have to make packets and send it via GSM to the another server. On the server side there is same GSM-module. Packet is near 5-14 bytes. For calling program is using TAPI.
Now about the problems I've to solve:
1. When I sending a small data packet ( for example 14 bytes) another side don't receiving anything. The data is receivibg only when the packet size is near 200 bytes. How can I solve it?
2. When the equipment or server is working in arear with bad GSM-coverage, the program doesn’t receive signal of overflow from the modem and sending data anyway. Then when the coverage is going better the data is lagging because the buffer has many packets of data and begins send it. How can I control that buffer? When the packets are not sending right away they have to ignore but they are exist anyway.
3. Where I can to read about data transmitting in GSM ( for beginners)?
There is nothing special about the size, I have been sending from 5 bytes to 12000 bytes in various programs and it makes no difference. Are you using WaitCommEvent with EV_RXCHAR? before doing the read.
I use presented below a code:
for read data from port:
Code:
...
::ClearCommError( m_hPort, &nStatus, &sCommStat );
if( sCommStat.cbInQue == 0 )
{
::WaitCommEvent( m_hPort, &m_dwEvent, NULL );
::SetCommMask( m_hPort, EV_RXCHAR );
::ReadFile( m_hPort, pData, sizeLen, &dwRead, 0 );
}
else
{
::ReadFile( m_hPort, pData, sizeLen, &dwRead, 0 );
}
...
for sending data to port:
Code:
...
::WriteFile( m_hPort, pData, sizeLen, &dwWritten, 0 );
::FlushFileBuffers( m_hPort );
...
What correct parameters should be at functions:
SetupReadTimeouts
SetupComm
SetCommState
Hi,
I have developed a test app to communicate between two Pocket PC's over GSM using the TAPI line functions. I want to send data over the line (The Cellular Line device's devcaps says that it supports 9600 baud). I open the line on both ends with:
lReturn = ::lineOpen(m_hLineApp, m_DeviceID, &m_hLine, m_ApiVersion,0, 0, LINECALLPRIVILEGE_OWNER, LINEMEDIAMODE_DATAMODEM | LINEMEDIAMODE_INTERACTIVEVOICE, 0);
It works fine when I make a normal voice call using LINEMEDIAMODE_INTERACTIVEVOICE call i.e. I can talk at both ends. However if I change this to LINEMEDIAMODE_DATAMODEM, although I get the LINE_REPLY message back, I donot get the LINECALLSTATE_OFFERING message, so I cannot answer the call. I get no messages at all on the receiving end's callback. I am using the "Cellular Line" device.
Is there any other parameter that I should know about when making a data call ?
I am developing in C++ using MFC (MSVC++ 2005) (Windows Mobile 2003).
Mark.c
Hi, all. i had found a different registry changes on wm6 and wm6.1 actually on obex service. Here is:
Code:
[HKEY_LOCAL_MACHINE\Software\Microsoft\Obex]
"IsEnabled"=dword:1
1 = that's mean obex service will loaded at startup and u 'll be able for receiving files.
0 = That's mean unloaded obex service and disable receiving files
Code:
[HKEY_LOCAL_MACHINE\Software\Microsoft\Obex]
"ObexServiceMask"=dword:3
3 = that's if u check "receive all incoming beams" on settings->connection and u 'll be able to receiving files till u uncheck this.
2 = if u uncheck.
So, if you want to enable receiving files, make sure "IsEnabled" always at value "1". And for activated/deactivated it throught check or uncheck beam on settings->connections
regards,
Added: For some devices who can't open some address on pie
Code:
[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main]
"EnableHighResolution"=dword:1
Thanks for sharing!^^
awesome, bro. very useful for a chefs...
move "usb to pc" on the right place
Code:
[HKEY_LOCAL_MACHINE\ControlPanel\PCConnection]
"Group"=dword:2
thanks bro
Useful found and appreciate it. great dude.
Thanks!
I am now able to send files between my two devices. Thanks. Great job
Thanks for the info.
I'll try some of this out. I was having BT problems.
Well that explains why i never had any issues with file transfer in WM 6.1
Obex has been set to one for months.
But now i can at least explain it.
Great !
it's working like a charm !
abusalza said:
Hi, all. i had found a different registry changes on wm6 and wm6.1 actually on obex service. Here is:
Code:
[HKEY_LOCAL_MACHINE\Software\Microsoft\Obex]
"IsEnabled"=dword:1
1 = that's mean obex service will loaded at startup and u 'll be able for receiving files.
0 = That's mean unloaded obex service and disable receiving files
Code:
[HKEY_LOCAL_MACHINE\Software\Microsoft\Obex]
"ObexServiceMask"=dword:3
3 = that's if u check "receive all incoming beams" on settings->connection and u 'll be able to receiving files till u uncheck this.
2 = if u uncheck.
So, if you want to enable receiving files, make sure "IsEnabled" always at value "1". And for activated/deactivated it throught check or uncheck beam on settings->connections
regards,
Click to expand...
Click to collapse
hi
i did that. an another device knows my device. but at the begining of transfering it canceled. what should i do ?
Working with the RIL for Cell Tower IDs (Google Maps "My Location", PhoneAlarm, etc)
Ladies and Gents,
I'd like to try and understand a bit more about how the RIL handles Cell Tower IDs in Windows Mobile.
I have two WinMo 6.1 phones, 1 HP iPaq RW6828 (O2 Atom rebadge) and 1 HTC S710 (Vox) Smartphone.
The iPaq is using WM6.1 OS 5.2.19400 build 19400 from NHOCBANME
The S710 is using WM6.1 Standard 5.2.19195 build 19202 from Dr Martin Gonzo
The S710 fully supports both the Google Maps "My Location" feature and PhoneAlarm's Location-based profile switching, but the Atom does not support either.
I've partially figured out some of the the details to recognise the Cell IDs - I've managed to get PhoneAlarm to log the Cell Tower IDs and facilitate Location-based switching (yay!).
However it came at the cost of disabling all GSM Data connections. It would attempt a connection but then time-out after a few minutes without connecting.
So here's what I've been looking at:
MSDN: Radio Interface Layer
Particularly:
RIL Registry Settings
Specifically the "Packet" value:
The HKEY_LOCAL_MACHINE\Comm\Cellular\RIL registry key configures the connection mode and number of concurrent connections used by Radio Interface Layer. The following table shows the named values.
Value:
Packet : REG_DWORD
Description:
Specifies the connection mode used by GPRS connections. When set to 0, a RAS-based connection is used. When set to a value greater than or equal to 1, NDIS GPRS is used.
By default, this registry key does not exist. To enable RIL NDIS packet APIs, this registry key must be [created manually or] added to Cellcore.reg.
Click to expand...
Click to collapse
By default in the iPaq the Packet key does not exist and the Contexts value is set to 2.
By comparison, the S710 has the Packet value set to 1 and Contexts set to 3.
Creating a Packet key and setting the value to 1 allows the PhoneAlarm location log to successfully log the Cell Tower IDs, however (as previously mentioned) the GPRS data connection fails to connect.
Setting the Packet value to 0 re-enables the data connection but disables the Cell Tower logging.
Chaning the iPaq Contexts value to 3 to match the S710 makes no difference either.
Does anyone have any further thoughts that may help get both Cell tower IDs and GPRS working together?
Many thanks
Tim
Bump for some views please?
MODS: I hope you don't mind if I cross-post this to the Dev/Hacking forum. Pls delete it there if you do.
Phrak said:
Bump for some views please?
MODS: I hope you don't mind if I cross-post this to the Dev/Hacking forum. Pls delete it there if you do.
Click to expand...
Click to collapse
Hi,
Have you found any solution I having the same problem.
I remember developing an application which used to trap Cell Broadcast information and that was in WM6.0 but now I am not able to do so i have WM6.1
I used to set the registry entry
Code:
HKLM\Software\Microsoft\Inbox\Svc\SMS\TreatImmidiateModeCBAsClass0SMS to 0
but now doing this has no effect, the messages from network still behave same and the state information value for Cell Broadcast is not updated...
Anyone having some idea on it?
Thanks,
Mohit