|
I want to get the WiFi information (eg. signal strength) from code (eg. C++, C#).
OS may be XP, CE5.0 or above.
I know it can be related to ndisuio.
Where can I get more coding information?
Thanks!
|
|
|
|
|
|
|
Hello folks,
I have a rather large image, whose size is around 6000 x 5000 pixels...
I would like to perfom image normalization and other such operations...which include some mathematical calculation for each pixel..
But when I do this on my image, it take about 20 mins to finish...
How to speed it up...??
Here is the normalization code which I am running..
public void NormalizeImage(ref Bitmap objBitmap, int iMaxColor)
{
DateTime dt = System.DateTime.Now;
System.Diagnostics.Trace.WriteLine(" Normalizing Image: " + dt);
int iX = objBitmap.Size.Width;
int iY = objBitmap.Size.Height;
int iMaxINTColor = 16777215;
try
{
for (int i = 0; i < iX; i++)
{
for (int j = 0; j < iY; j++)
{
int iPrevColorVal = objBitmap.GetPixel(i, j).ToArgb();
//if (iPrevColorVal < 0)
// iPrevColorVal = iPrevColorVal * -1;
int iNormalizedVal = System.Convert.ToInt32(Math.Pow((iPrevColorVal / iMaxColor), 1)) * iMaxINTColor;
objBitmap.SetPixel(i, j, Color.FromArgb(iNormalizedVal));
}
}
}
catch
{
System.Diagnostics.Debug.Assert(false);
}
DateTime dt2 = System.DateTime.Now;
System.Diagnostics.Trace.WriteLine("Done Normalizing Image:" + dt2);
}
|
|
|
|
|
Hi Safee,
The problem is the call to SetPixel. It's horribly slow. You can use the free .NET library FastBitmap[^] to speed up pixel operations, which will result in your algorithm being much faster.
|
|
|
|
|
|
|
Hey all, i need some help..
I'm using C# language for my project.. I'm having problems with my RTC program..
The program cannot make outgoing calls to the SIP server and VoIP phone..
But the SIP server and VoIP phone can call the RTC program..
This is the part of the code which enables the SIP server to connect with the program..
string bstrProfileXML = "<provision key=\"testing\" name=\"testing\">";<br />
bstrProfileXML += "<user uri=\"sip:102@152.226.136.17\" account=\"\" password=\"\" realm=\"\" />";<br />
bstrProfileXML += "<sipsrv addr=\"152.226.136.17:5060\" protocol=\"udp\" role=\"proxy\" />";<br />
bstrProfileXML += "<sipsrv addr=\"152.226.136.17:5060\" protocol=\"udp\" role=\"registrar\" />";<br />
bstrProfileXML += "</provision>";<br />
oProfile = oClient.IRTCClientProvisioning2_CreateProfile(bstrProfileXML);<br />
oClient.IRTCClientProvisioning2_EnableProfile(oProfile, RTCRF_REGISTER_ALL);
Anyone can help me??
|
|
|
|
|
Because your question involves intimate knowledge of this 3rd party RTC component, you may not receive a meaningful answer here. Have you tried posting your question in the RTC manufacturer's forums or support desk?
|
|
|
|
|
No i haven't tried posting it sumwhere else.. only cause the codes i'm using are of C# language..
But i'll try anyways.. Thanks..
|
|
|
|
|
I solved the problem below, what I found was that when I built in data relations into the dataset it created the problem described. How do I build a data relation into my tables without getting the error.
I have a DataSet with 5 tables and a Form with tabs and a grid on each tab to view the data in the DataSet. I have used the add datasource to attach the DataSet DataBinder, and DataAdapter to the grids. However when I try call the form I get the following error message concerning my DataSet:
"Object reference not set to an instance of an object."
Yet the following line is in my code.
this.dataSet_I = new AnalysisCSLib.DataSets.DataSet_I();
Furthermore from other classes I have received the same message and also received a message stating Parent and Child Columns not set or something similar.
Any ideas as to what the problem is here, I would greatly appreciate your help.
Thanks in advance.
Michael
-- modified at 21:59 Thursday 30th August, 2007
|
|
|
|
|
Is DataSets null? If not, is there something in the DataSet_I constructor that's null and being dereferenced?
|
|
|
|
|
|
If DataSets is just a collection, can't you write some code to verify it's initialized before use?
|
|
|
|
|
hi friend's
i want to use parallel programming method for write my project.but i don't know how can i do it.
and i have one question about it:
is parallel programming similar to threading or not.
oh my god im confusing... please help me.
thank you
msma
|
|
|
|
|
Parallel programming in .NET is threading; essentially the same thing.
|
|
|
|
|
Parallel programming is not the same as multi-threading. In a parallel processing system you have multiple processors each with their own memory. These processors can run the same computational process, different processes, or parts of a single process independently and simulataneously without requiring context switching.
Multi-threading allows multiple threads of execution to occur on a single processor and requires context switching to move between the threads.
These are really two completely different concepts.
|
|
|
|
|
Hmm, well, I bow to your ultimate coding supremacy, Scott. But I'm not sure about this part:
Scott Dorman wrote: Multi-threading allows multiple threads of execution to occur on a single processor
That's not true, right? I mean, the OS can schedule threads to run on any CPU or CPU core it chooses. Multi-threading enables one to program code that's run in parallel.
On single-CPU machines, the OS simply switches between the different executing threads (context switching), thus simulating real parallel programs.
Wikipedia says,
"Some people consider parallel programming to be synonymous with concurrent programming. Others draw a distinction between parallel programming, which uses well-defined and structured patterns of communications between processes and focuses on parallel execution of processes to enhance throughput, and concurrent programming, which typically involves defining new patterns of communication between processes that may have been made concurrent for reasons other than performance. In either case, communication between processes is performed either via shared memory or with message passing, either of which may be implemented in terms of the other."
I guess I've always considered parallel programming to mean writing software that executes in parallel. You do this using threads, which I think was the question of the post, after all, he said, "is parallel programming similar to threading or not?"
All that said, I admit I'm not an expert at threading. I'm probably wrong and you're probably right.
|
|
|
|
|
Judah Himango wrote: I guess I've always considered parallel programming to mean writing software that executes in parallel. You do this using threads, which I think was the question of the post, after all, he said, "is parallel programming similar to threading or not?"
The distinction becomes clear if you think of each parallel process as an entirely separate machine (this is not really accurate, but serves to demonstrate what I mean) - for example, a Beowulf cluster.
Threads are light processes which share memory with the main process; a truly parallel process has its own memory space. You can run them at the same time on 1 CPU, sure, but that rather defeats the purpose, since the CPU will still have to do twice as much work.
|
|
|
|
|
Interesting, thanks. So where do multi-CPU or multi-core CPUs fit into the picture?
|
|
|
|
|
Judah Himango wrote: So where do multi-CPU or multi-core CPUs fit into the picture?
Until very, VERY recently, they didn't. Until just a few months ago, parallel programming libraries would only be aware of CPUs and could only fork jobs to CPU's - for example, the most popular parallel processing library, MPI. Even that wasn't a guarantee that the CPU you sent the job to would be the one doing it. I've seen Linux decide to move the jobs back and forth between CPUs to prevent them from overheating.
btw, when I say 'fork jobs to CPUs' I mean the very heavy process of serializing the entire process to memory, moving it to another CPU, and having that CPU continue the job where it was left off. This is the distinction between a thread and a truly parallel process. People have been doing this for years on single CPU's using fork(), but it takes on a whole new level of meaning when you move it between CPUs.
Recently though, several libraries have come out designed explicitly to give developers access to the multiple cores on each CPU, so I expect in several years we'll see parallel processing making use of every possible core on every possible machine.
My office works almost exclusively in cluster computing so I expect I'll have to deal with this eventually....
|
|
|
|
|
It looks like Patric gave you a pretty good explanation on this one. As to your other question regarding multi-CPU and multi-core CPUs, they really didn't become a factor until fairly recently. I'm not exactly sure what you mean by "multi-CPU" other than to say 2 or more physical CPU chips on one board. In that scenario, you are "technically" running a parallel processing system, although I'm not sure the OS really treats it as such. It can schedule processes to run on one CPU or the other but I don't believe you (as the programmer) have control through the OS as to what gets scheduled where, etc.
Multi-core CPUs muddy the waters even further, as they are physically one chip and each core generally shares the same memory. Theoretically you could treat it as 2 CPUs, but I think you still end up with the same issues of context switches, etc.
|
|
|
|
|
As previous comments have stated, threading is not equivalent to paralellel processing. Currently MS operating systems do not choose a processor for a thread or a process to run on. That has to be done in the application by the application. If you would like to further investigate this, MSDN has some examples and I am not certain that CP does or does not.
Phil
|
|
|
|
|
pbraun wrote: Currently MS operating systems do not choose a processor for a thread or a process to run on. That has to be done in the application by the application.
That seems to conflict with what Patrick and Scott are saying. Are you sure about this?
|
|
|
|
|
Unless they've changed the scheduler in XP SP? and Vista for user processes, user processes are only scheduled on CPU 0. You can check this by writing a simple process that displays the CPU identifier and makes the CPU busy. Then run a few instances of the process to see which CPU they end up on. I don't have the source code for the test program I used to check that with anymore. It will take some time to re-create it.
Phil
|
|
|
|
|