Wednesday, December 3, 2014

As competing wireless networking technology providers gun for the smart home market, many contenders believe that the heart of the matter for the Internet of Things is its protocol for mesh networking.

The Bluetooth Special Interest Group (SIG) is reviewing mesh technologies for Bluetooth Smart proposed by companies like CSR and Zuli. Google, which recently unveiled its own Thread mesh networking technology, claims that any 802.15.4 wireless-capable devices will need only a software update to use Thread. Nest already uses a version of Thread in its products, and ZigBee is already built on mesh technology.

In this competitive environment, CSR is ratcheting up efforts to evangelize the company-developed mesh technology, CSRmesh, a protocol running over Bluetooth Smart (formerly known as Bluetooth Low Energy).

The UK firm released its first CSRmesh development kit last month. On Wednesday, it posted an introductory video to walk potential users through the process of getting started with the kit. The video explains what's included and how to download the necessary software, among other basics.

CSRmesh will allow consumers to control any Bluetooth Smart-enabled device in the home from wherever they are, including lighting, heating, appliances, and security systems. One element critical to the consumer experience: Solutions based on the CSRmesh protocol don't require the complex setup, pairing, or use of an access device such as a router.

At the moment, CSRmesh is not part of the Bluetooth Special Interest Group's officially approved Bluetooth Smart profile, nor is it part of any other standards body's specifications.

More importantly, CSR's isn't the only mesh technology proposed to the Bluetooth SIG.

In a recent interview with EE Times, Suke Jawanda, chief marketing officer at the Bluetooth SIG, was careful not to give an impression that CSRmesh is the chosen mesh technology for Bluetooth Smart.

SIG working groups are also reviewing a mesh technology developed by the San Francisco startup Zuli, Jawanda said. Zuli is using Bluetooth to build a mesh network for the smart home of the future. Its first product, which is being offered via Kickstarter, is a Bluetooth smart outlet.

"We are aware of CSR's intention" to donate code to the Bluetooth SIG, Jawanda said. There are 9 billion Bluetooth devices in use today, and 3 billion more are expected to be added this year alone. "Our review board needs to take a careful look" at the new mesh technology's implementation and how it interacts with devices. "The industry needs that rigor, and we don't want to be casual about it."

James Chapman, vice president of product marketing at CSR, remains optimistic. "We will find a venue to make [CSRmesh] available for the whole world to use it," he told EE Times this month. However, he would not discuss CSRmesh's progress at the Bluetooth SIG.

Why mesh?

Devices that are part of a mesh network not only can signal information to other devices within the mesh network, but they can also receive such signals. Because the networks connects every device to every other device, any device within the network can receive all these messages, make inferences based on the content and timing of the messages, and send out additional messages. Presumably, somebody walking down a hall would trigger occupancy sensors in a sequence; lights would illuminate and doors would unlock and open accordingly.

When asked what the industry needs to get the IoT market started, Chapman mentioned four things: "Range, multiple nodes for [many] devices, low power, and smartphone connectivity."

In his mind, technology like CSRmesh would provide range and multiple nodes; Bluetooth Smart would handle the rest.

Lee Ratliff, principal low-power wireless analyst at IHS Technology, agreed with that assessment. "We believe mesh technology is important for many IoT applications, especially those that require extended range or peer-to-peer communication."

Is the addition of mesh technology a prerequisite for Bluetooth Smart's success? Not exactly.

The recent bid for the British chip manufacturer CSR by Qualcomm is a clear symptom of the SmartHome war getting hotter on the mesh wireless protocol front.

A quick recap of the facts.

· Mesh protocols in homes have been available for a long time with Insteon.

· The Thread protocol, announced by NEST and Samsung, will add mesh capabilities to 6LowPan.

· CSR has developed mesh extensions on top of Bluetooth Low Energy (BLE)

It is worth pointing out that BLE has a definite advantage against all other contenders: it is natively supported by both Android and iOS Smartphones and tablets without the need of any hub or gateway. This is a feature wifi has as well, but the low power consumption sets BLE a step above.

An agnostic BLE with mesh extensions might become a de-facto standard in a scenario where a plethora of industrial protocols fight to take a place under the spotlight. In such an “everybody against everybody” war scenario I could imagine Apple supporting a mesh BLE but I have a harder time picturing an iPhone or iPad supporting Thread, ZigBee or Z-wave.

CSR’s knowhow on BLE Mesh might have been one of the most important reasons for its acquisition. When adding all the above to Qualcomm’s important role in the definition of AllSeen/AllJoin SmartHome normalization platform, I am tempted to consider them as the most forward-looking company in the SmartHome landscape that will play a key role in creating the interoperability the SmartHome market needs so badly in order to go mainstream.

Thursday, October 23, 2014

Sometime Ubuntu desktop was broken and no Dash Home and Launcher can be seen. So we need go to the 1st virtual terminal via "Ctrl + Alt + F1", and run "sudo apt-get install ubuntu-desktop", after installation, run "sudo reboot" and will see the normal Ubuntu desktop.

Friday, September 12, 2014

PrintService

PrintServices are plug-in components that know how to talk to printers via some standard protocols. These services serve as a bridge between the system and the printers. Hence, the printer and print protocol specific implementation is factored out of the system and can be independently developed and updated. In other word, PrintService is a service that performs the detection of the printer, the processing of the print job.Addition to the role, such as a driver for the network printer, it can also be implemented as a service to be output to any location as a PDF file.

Add and configure PrintService

When you install an application that contains the implementation of PrintService, service will be added to the Printing screen of Settings. The user can launch the settings screen you can switch the On / Off of PrintService each, each PrintService provides.

onCreatePrinterDiscoverySession ()

When the system starts the detection of printer, onCreatePrinterDiscoverySession method of PrintService is called. There is a need to return an instance of PrinterDiscoverySession is PrintService side at this time. During the detection of the printer, PrinterDiscoverySession is a class that encapsulates the interaction between the system PrintService. Each callback method of PrinterDiscoverySession class will be called, and printer can be added, updated, and deleted.

Item

Commentary

void onStartPrinterDiscovery (List printers)

It starts the detection of the printer. Printer information is already discovered. It adds and updates printers in addPrinters method. It deletes printers in removePrinters method.

void onStopPrinterDiscovery ()

Callback notifying you that you should stop printer discovery.

void onStartPrinterStateTracking (PrinterId printerId)

A callback that asks the user to start tracking of the status of the printer. It is called when the printer is selected in the Print dialog. You must notify the system as soon as possible when the state of the printer has changed

void onStopPrinterStateTracking (PrinterId printerId)

A callback to notify that the tracking of the status of the printer is finished.

void onValidatePrinters (List printerIds)

A callback to seek validation list of PrinterId passed as if it were a valid. There is a need to update the printer information in addPrinters method if it is valid

void onDestroy ()

It will be called when this session is determined to be unnecessary from the system

In the following section, an implementation example of PrinterDiscoverySession is showed with DropboxPrintService. It does not do anything except that you are adding a printer in onStartPrinterDiscovery method. PrinterInfo.Builder is created for printer information. You can specify printable paper size, color settings, such as resolution. if you pass a list of PrinterInfo in addPrinters method, printer information is displayed in the print dialog box. Create a PrinterInfo in onStartPrinterDiscovery within the method, it calls addPrinters method, but the detection is performed printer to start the thread normally, it will be able to add the printer information using the Handler, etc. .

onPrintJobQueued (PrintJob paramPrintJob)

When a printer is detected, the printing starts, PrintJob is passed to onPrintJobQueued method. Other printer ID, ​​and FileDescriptor color information and print size, to a PDF file is included in the PrintJob. This is done using the FileDescriptor is taken out of print data. PrintJob will have a status start, finished, failed, and canceled. Should be set in accordance with the state of printing. The following is an example to save and retrieve the PDF from PrintJob. You have done all the work on onPrintJobQueued method, but will be using the AsyncTask, etc. usually. However, operation of PrintJob must be done on the UI thread. FileDescriptor of PDF data is similar. If you want to send to the network on the PDF data, you will need to use the AsyncTask on which the file was created, etc. time.

PrintJob so are queued automatically PrintService, you do not need to be the handling of the queue on your own again.PrintJob active can be retrieved in getActivePrintJobs method.

onRequestCancelPrintJob (PrintJob paramPrintJob)

onRequestCancelPrintJob method is called when the user cancels the print job. PrintJob are passed, you need to stop the process corresponding. You can also check in isCancelled method of PrintJob class

Log in to the Dropbox

When you have made ​​all of your installed the DropboxPrintService, first log in to the Dropbox. Select the DropboxPrintService in Printing screen of Settings, turn ON the DropboxPrintService open the detail screen. Please log in to Dropbox so open the setting screen from the bottom menu.