Measurement of energy consumption using profiler in windows 10 mobile device - mobile

I'm trying to profile energy consumption in a real Windows 10 mobile device with ARM-class processor. However, to do so, we need to disconnect from USB cable, because a direct feeding by means of USB seems to distort measurements, in addition energy-aware objects (like AggregateBattery) defaults to null. But when device is disconnected from the computer, and connected via WiFi, seems that Visual Studio does not support such remote debugging. VS2015 remote tools are not available for Windows 10 mobile phones with ARM processors, at least, we couldn't find a suitable installer for the platform. Is there a way to profile energy consumption for a UWP application, running in a real Win10 mobile device, using VS2015?

Related

Communicating with a Bluetooth device from UEFI code

Is it possible to communicate with a mobile device supporting Bluetooth LE from UEFI of a system? UEFI specification 2.6 adds support for Bluetooth but I dont see any new laptops supporting it and also the specification doesnt say anything about Bluetooth LE.
This feature is possible. However, its not related to UEFI Mode but this feature has to be embedded into the bluetooth chip itself. This feature is generally known as Headless mode of Bluetooth Chip.
The Bluetooth chips contain two firmwares. One firmware for general BT functionality and the other firmware contain a lite Bluetooth stack which contain a very cut down version of Bluetooth stack which can support BLE feature. So, when your laptop either gets shutdown or goes to sleep, your BT chip goes into headless mode and start advertising itself to other BLE device. Other ble device like mobile can see this and can connect to it and start your laptop.
This feature is however, not present in any laptop known to me. But you find a good example of this in Samsung's smart TV. You can switch on your TV from samsung mobile using ble.

USB keeps disconnecting...only for mobile devices

Very strange issue, no results that I could find from google searches.
I am running Windows 7 64 bit. Everything Windows related is up to date, and so are all USB drivers. My computer is a laptop from Puget Systems.
My computer has three USB inputs; one USB 2.0, and two USB 3.0s. 2.0 versus 3.0 doesn't really matter though, because this issue happens with all three drives.
Heres the issue: When connected, USB devices are found, and recognized. 5-30 sec later, they disconnect, only to reconnect in a couple seconds. The cycle of disconnecting/reconnecting continues indefinitely. I have not been successful with keeping USB devices connected for more than ~30 seconds.
At this point, it could be any number of things causing this issue. But this is where it gets weird. This issue ONLY happens with mobile devices, and it happens with ALL mobile devices. By mobile devices I mean phones and iPods. I have tested my Samsung Galaxy S4, an iPod Classic, an iPod touch, an iPod nano, a Droid Turbo, and an iPhone 5. This issue occurred with all of these devices. The issue did NOT occur at all with my 2TB Seagate backup harddrive, my 1TB WD harddrive, several USB pen drives, my external keyboard, or my wireless mouse USB receiver that is plugged in nearly 24/7 in my USB 2.0 drive. My Xbox One controller disconnected 3 times in a row once, but that only happened once so it might have been a fluke...?
Anyways, what could be the reason for this strangely specific issue? Does anyone have any answers or has anyone experienced something similar?
Improper drive installation? Make sure your drivers are installed correctly. Try uninstalling and reinstalling them. If this does not work try to see if it is your USB cable or mobile device's port. (Test by altering to charge the device from a wall adapter) It could also be your computers port but you said in the title that it is only happening for mobile devices.
Reinstall the drivers to the devices you are having problems with. (Oh someone beat me too it.)

Why my Wpf application (on full software mode) runs slowly on Citrix server

I've WPF application. Because our Citrix doesn't have a independant graphic carte. I've to set RenderMode en Software only with :
RenderOptions.ProcessRenderMode = System.Windows.Interop.RenderMode.SoftwareOnly;
It runs still fluently in my sony duo 13:
Windows 8.1;
Intel(R) Core(TM) i5-4200U CPU # 1.60GHz (4 CPUs), ~1.6GHz
8192MB RAM
Intel(R) HD Graphics Family; 1792 MB approx memory total;
DirectDraw speedup activated; Direct3D speedup activated; AGP texture activated
But it runs bad on Citrix server (only one application executed):
Windows Server 2008 R2 Standard 64 bits (6.1m version 7601)
VMware Virtual Platform
Intel(R) Xeon(R) CPU x5670 # 2.93GHz (4 CPUs), ~2.9GHz
4096MB RAM
No graphic carte info
I proved my application was running on mode Software with using Windows Performance Tools, all my window of my application is colored by purple tint (it means draw software rendering)
Except Graphic Carte, our Citrix server is more powerful than my hyperbook Sony, but why it works bad?
Thanks
Because your Sony doesn't have to send all the graphical updates over the network to another machine. The network kills graphical performance when you're remoting applications. This is particularly noticeable when using mobile devices which are using 3G or WIFI since the latency is quite high. Every single graphical update your app makes is encoding into a JPEG and then sent over the wire to the receiver. So you're looking at 10's if not 100's of ms for updates to be seen on the client depending on network conditions.
Performance for graphically intensive apps is getting better on Citrix. Later versions of the server/receiver support H264 encoding which improves performance considerably, e.g.
http://blogs.citrix.com/2013/11/06/go-supersonic-with-xendesktop-7-x-bandwidth-supercodecs/
Other technology like Framehawk is also being integrated in the Citrix stack which improves performance in poor network conditions:
http://blogs.citrix.com/2014/01/08/framehawk-will-take-our-hdx-technology-to-the-limit/

How to implement a USB device driver for Windows?

How should I approach implementing a USB device driver for Windows? How should I take into account different versions of windows e.g:
- Windows XP
- Windows Vista
- Windows 7
Is there open source solutions which could be used as a starting point? I'm a total newbie to windows driver development.
We have an embedded device with USB device port and we would like to have as low latency communication from the application level to the device as possible without sacrificing the data throughput. The actual data transferred is ADC/DAC data. Basically there is a lot of data which we need to transfer to a Windows machine as fast as possible.
We need more information about the device to point you in the right direction, but here are a few steps to get you started:
register with Microsoft Connect so you can download the Windows Driver Kit
register with osr-online as you'll find great articles, plenty of information, and a newsgroup dediciated just to Windows drivers -- this place is a goldmine
buy Developing Drivers with WDF, which will help you make sense of driver development on Windows and give you a good foundation to read articles from OSR and Microsoft
Hope that you can use UMDF (user-mode drivers) as you can use C++ and just write COM code. If you're doing anything with USB that requires kernel-space....you've got a lot of reading and learning to do for the next year!
To answer your question on versions, the Driver Kit has tools that will help you manage creating different drivers. If you write a good driver, it should run on all three OS with no problems, and the differences will just be in the config area (not the binary)
Basically, it depends on how complex your device is. What type of driver are you trying to write? File system? MP3 player? Camera? Modem?
If you end up having to write a kernel mode driver, let me know and I can point you to some good articles and what not.
I should also add that for around US $5,000, you can buy a license for WinDriver, a tool that takes all of the hard stuff out of driver development. You can use C++ or C# user-mode code to communicate with their driver that is custom generated for your device. This is the way to go if you have a tight deadline.
You can take a look at windows variant of libusb *here*. There are wrappers for many programming languages on official libusb site and on the web.
Start here: Windows Driver Kit Introduction
If you have some form of control over the device side, have it implement an interface for which Windows already provides drivers. E.g. the USB HID class (literally Human Input Device, but neither the Human nor the Input is mandatory) already has Windows drivers, and there is a reasonable Win32 API on top. You're not going to get data rates anywhere near 480 Mbps, though.

Connect to digital camera from cellphone?

A customer (photographer) asked me, if it was possible to write some kind of software for cellphones, so he could physically connect it to his professional digital camera (Canon or Nikon) and transfer the pictures (or a subset) to the cellphone.
I am trying not to put constraints on cellphone platform (Symbian, Windows Mobile etc) from the beginning, so I am leaving that sort of constraints out on purpose.
Can anybody give me some hints?
You need a connection between the camera and the cellphone:
Some windows mobile devices got a USB-Host-Function, so you can connect either a cardreader or the camera itself via a usb-cable and read the files from the device. I never heard of a symbian-device which supports usb-host, but there might be some.
If the camera supports either bluetooth or ir, you could use these protocols to transfer the files as most mobile-phonse support this.
If you got a connection (and the protocol-support by your platform) it is easy to write a application to transfer the file from the device to you cellphone. You can write this application in any supported language (java for j2me, python (symbian), .net (windows mobile)
My digital camera saves photos to a memory card. I can simply take the memory card out of the camera and insert it into my Windows Mobile phone and view the photos on the phone.

Resources