I'm trying to develop a simple application to my Omnia 2 in DirectX in VB.NET, but i stuck, really hard. I want to load a simple texture from a file, but the TextureLoader.FromFile gave me an InvalidCallException error. I don't know what to do, because the code is working on the emulator, but throw this error on the phone. I googled it, a lot, but found nothing.
I hope someone can help me in this.
Here's some code fragment. Please someone help me.
Code:
Function InitializeGraphics() As Boolean
Dim Parameters As PresentParameters = New PresentParameters()
Parameters.Windowed = True
Parameters.SwapEffect = SwapEffect.Discard
DeviceForm = New Device(0, DeviceType.Default, Me, CreateFlags.None, Parameters)
Me.OnCreateDevice(DeviceForm, Nothing)
Return True
End Function
Private Sub OnCreateDevice(ByVal sender As Object, _
ByVal e As EventArgs)
Dim dev As Device = CType(sender, Device)
spriteTexture = TextureLoader.FromFile(dev, "\Storage card\Picture.png")
Using s As Surface = spriteTexture.GetSurfaceLevel(0)
Dim desc As SurfaceDescription = s.Description
textureSize = New Rectangle(0, 0, desc.Width, desc.Height)
End Using
sprite = New Sprite(DeviceForm)
End Sub
Here's some picture from the exceptions details.
Nevermind. I solved it.
Hello experts,
I always wonder if there's any way that we can get the informations (id, phone signal strength, bcch ...) from all the surround cells in Windows mobile 6 (with C#/C++ on my HTC touch HD). With RIL, we can only extract the info of current cell, but not the neighbors.
I'm inspired by this thread which was created in the forum by binary64:
forum.xda-developers.com/showthread.php?t=610759
However without the code i still haven't figured how did he extract the values of the 6 towers...
Base on the research i've done, it seems impossible to get the real neighbors cell ID, however i'm really interested in the phone signal strength, bcch... that are possible to get. (as fieldtest.exe or what binary64 demonstrated)
Any idea would be precious to me, thank you very much
I think that the memory/registry approche seems to be the only solution
Does anyone know which part of the memory/registry in HTC contains the GSM informations ?
up thread
Sorry to spam, i just want to up my thread because i really want to have some answer
Progress
With RIL DevSpecific i've get to extract the values of Fieldtest, however i don't know the necessary parameters to get the source that fieldtest take as result.
Precisely, if i run fieldtest once, and use the devSpecific, i'll get the last result of fieldtest and always the same. If i run fieldtest again then use DevSpecific i'll get a new result (always latest result from Fieldtest).
Does anyone know where to find a document related to devSpecific ?
Thank you very much.
Well you could execute "fieldtest.exe" in the /windows/ folder; it's like the old Nokia's "Netmonitor" wich was for "engineering purposes"
MuratNL said:
Well you could execute "fieldtest.exe" in the /windows/ folder; it's like the old Nokia's "Netmonitor" wich was for "engineering purposes"
Click to expand...
Click to collapse
Thank you, my fieldtest.exe was always running ok, but in fact i'm trying to disassembly it with C++/C#. Do you (or anyone) know any source that we can buy the documents related to this subject ?
No, I'm sorry but i'm not a good coder so i have to dissapoint you...
Maybe someone here at XDA-DEV can help you?
AT Command
Does anyone know a specific AT Command that can be used to extract the network info ?
Thanks
A spam question : Is there any condition for a member to get the answers of the experts ? i don't think that no one has an idea ...
Hi Vietsuper,
This seems to be a more up to date thread, so I post this here as well.
I'm working on a HTC HD2, and I am trying to get pretty much the same info. neighbour BCCH carriers and their received signal strengths. Indeed, not only RIL does not offer info on the neighbour cells, but I keep getting ZEROs in all fields returned by RIL except the cellID, MCC, MNC and LAC.
I see that you found a way with RIL_DevSpecific. If you give me advice, directions or code pieces, I'd be interested to try it on my HD2.
Thanks
hi pc18,
Actually RIL_devSpecific allows you to extract the info of neighbor cells (ARFCN + RSSI) as the program fieldtest. However it just works along with fieldtest, without fieldtest you always get the same value not up to date. I think in fieldtest they add some more parameters that allow to refresh.
You can find some reference in the thread of binary64 of which the link i posted above.
( forum.xda-developers.com/showthread.php?t=610759 )
I'm searching for the document more specific about RIL_devSpecific, however i couldn't find. If you find it somewhere, i'll be very grateful if you can share.
Thanks.
vietsuper said:
hi pc18,
Actually RIL_devSpecific allows you to extract the info of neighbor cells (ARFCN + RSSI) as the program fieldtest. However it just works along with fieldtest, without fieldtest you always get the same value not up to date. I think in fieldtest they add some more parameters that allow to refresh.
You can find some reference in the thread of binary64 of which the link i posted above.
( forum.xda-developers.com/showthread.php?t=610759 )
I'm searching for the document more specific about RIL_devSpecific, however i couldn't find. If you find it somewhere, i'll be very grateful if you can share.
Thanks.
Click to expand...
Click to collapse
Hi vietsuper,
I've looked into the thread and got inspired by it. I think it is interesting. I also think it is very interesting that one can only get carrier information (attachment base and neighbours) via FieldTest. Unfortunately, using the code that I will paste below, I could only get a return value of -2147467263 which as far as I could see means E_NOTIMPL. Now, I could be wrong when building up the params to pass to RIL_DevSpecific(). Here it is:
Code:
hRes = RIL_Initialize(1, new RILRESULTCALLBACK(rilResultCallback), null, 0, 0, out hRil);
byte[] dev_command_buffer = new byte[] {84, 0, 0, 0, 0, 0, 0, 0, 0x9c, 0x9b};
int size = Marshal.SizeOf(dev_command_buffer[0]) * dev_command_buffer.Length;
IntPtr buffer_pointer = Marshal.AllocHGlobal(size);
try
{
Marshal.Copy(dev_command_buffer, 0, buffer_pointer, dev_command_buffer.Length);
hRes = RIL_DevSpecific(hRil, buffer_pointer, 10);
}
Where do you think is the problem?
Thanks
pc18 said:
Hi vietsuper,
I've looked into the thread and got inspired by it. I think it is interesting. I also think it is very interesting that one can only get carrier information (attachment base and neighbours) via FieldTest. Unfortunately, using the code that I will paste below, I could only get a return value of -2147467263 which as far as I could see means E_NOTIMPL. Now, I could be wrong when building up the params to pass to RIL_DevSpecific(). Here it is:
Code:
hRes = RIL_Initialize(1, new RILRESULTCALLBACK(rilResultCallback), null, 0, 0, out hRil);
byte[] dev_command_buffer = new byte[] {84, 0, 0, 0, 0, 0, 0, 0, 0x9c, 0x9b};
int size = Marshal.SizeOf(dev_command_buffer[0]) * dev_command_buffer.Length;
IntPtr buffer_pointer = Marshal.AllocHGlobal(size);
try
{
Marshal.Copy(dev_command_buffer, 0, buffer_pointer, dev_command_buffer.Length);
hRes = RIL_DevSpecific(hRil, buffer_pointer, 10);
}
Where do you think is the problem?
Thanks
Click to expand...
Click to collapse
I remember u said u use HTC HD2, so i think the RIL standard functions are implemented, so if u have imported the functions i should work.
I once did in C# and the code just simple as below and it worked well:
Code:
[DllImport("ril.dll")]
private static extern IntPtr RIL_Initialize(...
[DllImport("ril.dll")]
private static extern IntPtr RIL_DevSpecific(IntPtr hRil, byte[] lpbParams, uint dwSize);
//in my function
byte[] param = new byte[] { 0x84, 0, 0, 0, 0, 0, 0, 0, 0x9C, 0x9B };
hRes = RIL_DevSpecific(hRil, param, 10);
you even just need {0x84,0,0,0} for the same result, because commandId=0x84 is enough.
If u still get E_NOTIMPL may be u need to create/copy ur own ril.dll somewhere, but i think it's unlikely because i think HTC HD (my phone) and HTC HD2 have the similar implementation for RIL.
Memory dump
I'm desperate to find the info directly in the memory. There's something a little bit interesting that i found out.
There's a sequence of responses to AT Command writing in ASCII:
@HTCCSQ:3
@HTCCSQ:4
@HTCCSQ:2
+CREG: 1,"000C","9F60" (here we has current LAC + Cell ID)
+CREG: 1,"000C","9BC7" (another LAC + Cell ID, i think it's the previous one)
+COPS: 0,2,"20820",3 (inside the "" are MCC MNC)
@HTCCSQ:3 .... (there's plenty of @HTCCSQ: coming next )
Look like some kind of log of the querries of RIL driver to the modem (i'm not sure), just sure that it wasn't my programs who send the command.
may be we can get to the other network info too. Any ideas ?
Thanks.
Thanks vietsuper for your help. I finally arrived at some result. Indeed, a hexdump of the data that's being received from ril_devspecific gives the last information that's displayed by fieldtest. With fieldtest running in the backgound one can get fresh information (ie with a new request every, say, 2 secs).
I see two problems at the moment:
1) does anyone know at this point how to turn the memory zone pointed to by the IntPtr into a struct? or will i have to parse the hexdump for the neighbour cell information (BCCH number and received signal strength)?
2) fieldtest will only return neighbour information when the telephone displays Edge available (GSM menu item); whenever the phone displays the 3G status icon, neighbor cell information is no longer available (ie NCell1 0 -99dbm); does anyone have any idea?
pc18 said:
Thanks vietsuper for your help. I finally arrived at some result. Indeed, a hexdump of the data that's being received from ril_devspecific gives the last information that's displayed by fieldtest. With fieldtest running in the backgound one can get fresh information (ie with a new request every, say, 2 secs).
I see two problems at the moment:
1) does anyone know at this point how to turn the memory zone pointed to by the IntPtr into a struct? or will i have to parse the hexdump for the neighbour cell information (BCCH number and received signal strength)?
2) fieldtest will only return neighbour information when the telephone displays Edge available (GSM menu item); whenever the phone displays the 3G status icon, neighbor cell information is no longer available (ie NCell1 0 -99dbm); does anyone have any idea?
Click to expand...
Click to collapse
1> In C#, you can use Marshal.PtrToStructure to copy the IntPtr to a structure/class u created. To dump memory you Marshal.Copy to a byte array and BitConverter.toString(array). I think if you want to read the full neighbor cell info, as what i wrote above you must do research in some memory zones or make a direct stream connection to the gsm modem and querry with AT Command.
2> Fieldtest can show different kind of info depending on the option you choose in the "group" menu. The neighbor cell info are only available for gsm option, so if your phone has the 3G status, means that it connect to a 3G tower, the gsm info in Fieldtest is no longer available, you must choose other options for 3G.
If you have any progress in any way that i mentioned (AT Command / Memory dump), please share to me too, thanks.
vietsuper said:
1> In C#, you can use Marshal.PtrToStructure to copy the IntPtr to a structure/class u created. To dump memory you Marshal.Copy to a byte array and BitConverter.toString(array). I think if you want to read the full neighbor cell info, as what i wrote above you must do research in some memory zones or make a direct stream connection to the gsm modem and querry with AT Command.
2> Fieldtest can show different kind of info depending on the option you choose in the "group" menu. The neighbor cell info are only available for gsm option, so if your phone has the 3G status, means that it connect to a 3G tower, the gsm info in Fieldtest is no longer available, you must choose other options for 3G.
If you have any progress in any way that i mentioned (AT Command / Memory dump), please share to me too, thanks.
Click to expand...
Click to collapse
Thanks. This is valuable info. I am looking into the directions you pointed out to.
Memory dump
I've found something else by dumping the memory, this time it isn't some AT Command log but a fixed structure :
00 00 ... 00 [4 bytes LAC][4 bytes Cell ID][3 chars MCC][2 chars MNC] 01(unknown byte) 00 ... 00 00
I think there'll be other memory blocs that contain neighbor cell info, however i haven't found.
Hope someone can share ...
Fieldtest rssi
Does any one know why the RSSI shown in Fieldtest have a distance of 15-20 dB compare to the value of GetSignalQuality ?
In my opinion:
- GetSignalQuality shows the initial signal strength captured by the phone (Rx), because the value is calculated from the response AT+CSQ of the Radio modem.
- In Fieldtest / RIL_DevSpecific we have a weaker strength (-10 -20 db), may be it counts some other loss factors of device.
Any ideas ?
Thanks
Help using RIL_DevSpecific
Hi, guys would you share code to get that information. I work for a telecommunication company and I am also working on my MS degree project related to cellular networks. I will use the information to compare with cell database I have access to.
Thanks
I am trying to figure out how to calculate dewpoint from temperature and humidity. The formula is ridiculously long, but there is a simple formula that gives an approximation, which is good enough for my purposes.
Td = T - ((100 - RH)/5).
Td = Dewpoint in degrees Celcius
T = Temperature in degrees Celcius
RH = Humidity
Since my phone is in degrees F. I had to convert to degrees C. This is what I did, but it doesn't work, I think because of the % symbol attached to the humidity variable: $int((#WCTEMP#-32)*5/9))-(100-#WCHUM#)/5)$. The problem is, it just displays exactly what I typed, it doesn't do the math. Can anyone point a noob in the right direction? It is probably obvious, but I am still trying to figure out zooper.
I have seen other requests for a dewpoint variable on the forums, so there is a demand out there. Any help would be appreciated, thanks!
Do you own Tasker?
You could do an https get on yahoo weather api and get all the info from there.
Its not to terribly difficult. Probably on the intermediate level.
Sent from my Nexus 5 using Tapatalk
I was just considering purchasing that tonight. I will give that a shot! Thanks Mr Biggzz
MrBiggzz said:
Do you own Tasker?
You could do an https get on yahoo weather api and get all the info from there.
Its not to terribly difficult. Probably on the intermediate level.
Sent from my Nexus 5 using Tapatalk
Click to expand...
Click to collapse
Its a great app!
Sent from my Nexus 5 using Tapatalk
@robgross how are you making out?
MrBiggzz said:
@robgross how are you making out?
Click to expand...
Click to collapse
I downloaded Tasker but haven't had time to learn it yet...but I will! I do know that ZW sees #WCHUM# as text, so it will not formulate it. I tried using #WCHUMN# to see if it would dispay the value as a number, as #WCTEMPN# does...but that didnt work. Thanks for following up!
Christmas in May!
Dave Handler shares a file with you, please click the link to download: http://dl.dropboxusercontent.com/1/view/qqiv1skjchq7ifu/Tasker Projects/Yahoo_Weather.prj.xml
In it are two tasks Input Zip code which uses a scene to well, get the zip!
The other task is Get Yahoo Weather. That uses a variable that gets set when you set the zip code.
Set your zip and the run the weather task and then check the variables tabs. You'll see every thing that is supplied including the five day forecast.
You'll have to figure what you want and pass it on to Zooper. Every variable for weather is global!
Enjoy!
p.s. everything is in standard units. Fahrenheit, mph and inches. This only thing I didn't do is give you an indicator if the barometric pressure is falling, stable or rising. If you need it I can put it in there!
Sent from my Nexus 5 using Tapatalk
Mr. Biggs, thanks for this, but I can't seem to open this link, it says it's not valid both in Tasker and a browser.
MrBiggzz said:
@robgross how are you making out?
Click to expand...
Click to collapse
MrBiggzz, I figured out how to use Tasker! It's a lot easier to use than I thought, and the possibilities are endless. Thanks for the tip!
I know its an old thread and i was seaching in this thread too; and now i solved by myself. I post here the solution for tasker if someone needs it:
You need to set up or read out from web 2 variables (%temp = temperature and %hum = humidity), once you have set the 2 variables you need to add a code java scriplet to the task to calculate dewpoint and absolute humidity:
function taupunkt() {
if ( (temp == null || temp == 0) ||
(hum == null || hum == 0) ) {
return;
}
var a1=7.45;
var b1=235;
tp=temp;
fw=hum;
tp=tp*1;
fw=fw*1;
x1=(a1*tp)/(b1+tp);
e1=6.1*Math.exp(x1*2.3025851);
e2=e1*fw/100;
x2=e2/6.1;
x3=0.434292289*Math.log(x2);
taux=(235*x3)/(7.45-x3)*100;
taux=Math.floor(taux)/100;
feux=(216.7*e2)/(273.15+tp)*100;
feux=Math.round(feux)/100;
var TAUX = taux;
setGlobal("TAUX", TAUX );
var FEUX = feux;
setGlobal("FEUX", FEUX );
exit ();
}
taupunkt()
The java scriplet calculate the dewpoint and the absolute humdity and stores it in the variable %TAUX (dewpoint) and %FEUX (absolute humidity). Now you can make a popup alert or whatever you want and display the dewpoint calling %TAUX and the absolute humidity %FEUX
All I need to know is in Zooper... can I display an image instead of the text displaying the day of the week... so for example... if I want to display a draw of a camel on Wednesday instead of the text 'Wednesday' or 'Wed' etc. can I do do this? I am sure it is possible... I just cannot figure out HOW Thanks for any help!
As you can tell from the below sample you can see that you should me able to write an expression that would allow you to not only change the date and time but to do exactly what you want. If you need any help please pm me and I'll help you out any way I can.
Cheers!
If I've been of help please hit the thanks button.
I$#BLEVN#>10?Good!:Look for a charger!$ will render “Good!” if battery level is greater than 10 or “Look for a charger!” otherwise
Rich Text [c=$#BLEVN# 10 && #BLEVN < 25 ? #FFFF00$$#BLEVN# >= 25 ? #00FF00$]#BLEVN#%[/c] will write battery level (es 10%) in RED if battery is 1) ? #C0EEEE$ will write first calendar entry day name writing “Today” if its today, “Tomorrow” if tomorrow, the name of the day otherwise
$#C0SHH:mm#!=00:00$ will render the starting HH:mm of first calendar event only if it is different than “00:00″
Is it August $#DM#=8?Yes:No$ will render “Is it August: Yes” during August, “Is it August: No” otherwise
$#LCN#!=Germany$ will render the Country name only if its not Germany (nothing otherwise)
$#C0D#=1?#C0Shh\:mm#$ will show the time of first calendar event start in 12 h format only if the entry is not an all day event (please remember to*escape*the “:” into “\:” otherwise it will be considered an “else” block!)
KiRyah said:
As you can tell from the below sample you can see that you should me able to write an expression that would allow you to not only change the date and time but to do exactly what you want. If you need any help please pm me and I'll help you out any way I can.
Cheers!
If I've been of help please hit the thanks button.
I$#BLEVN#>10?Good!:Look for a charger!$ will render “Good!” if battery level is greater than 10 or “Look for a charger!” otherwise
Rich Text [c=$#BLEVN# 10 && #BLEVN < 25 ? #FFFF00$$#BLEVN# >= 25 ? #00FF00$]#BLEVN#%[/c] will write battery level (es 10%) in RED if battery is 1) ? #C0EEEE$ will write first calendar entry day name writing “Today” if its today, “Tomorrow” if tomorrow, the name of the day otherwise
$#C0SHH:mm#!=00:00$ will render the starting HH:mm of first calendar event only if it is different than “00:00″
Is it August $#DM#=8?Yes:No$ will render “Is it August: Yes” during August, “Is it August: No” otherwise
$#LCN#!=Germany$ will render the Country name only if its not Germany (nothing otherwise)
$#C0D#=1?#C0Shh\:mm#$ will show the time of first calendar event start in 12 h format only if the entry is not an all day event (please remember to*escape*the “:” into “\:” otherwise it will be considered an “else” block!)
Click to expand...
Click to collapse
Hi! I saw this post of yours, I know it is late but I am trying to edit my calendar widget so that it displays the event in this format: *Month* *Day* *Day of the Week* *Time (if not an all day event)* *Event Title*
For example my first upcoming event is: Suits Season 5 Return @ January 27 at 6PM.
So the only way I could tweak it as closely to my preference displays as "Wed Jan 27 6:00PM Suits Season 5 Return". This is REALLY close to how I am trying to get it but the rich text is a bit complicated for me.
As of right now my current rich text is: #C0SEEE MMM d hh:mma# #C0TITLE#
I am trying to have it say, "Jan 27 - Wed - 6:00PM Suits Season 5 Return" AS well as for the time to disappear if it were an all day event instead. Do you think you can help me out with this? I tried to copy and paste in some of your code it wasn't really working for me.