Skip to main content

  | मौसम…

411 समाचार
Public archive edition · Attributed source reporting with original dates · AI drafts are excluded

411 REFERENCE · Wikibooks

Using the 3D Connexion SDK/Introducing the 3D Connexion SDK

Reference material by Wikibooks contributors. This retains its source identity and is not 411 news reporting.

Introducing the 3D Connexion SDK An SDK is a Software Development Kit, a load of code to allow you to make programs which do things with companies' products. Let's unzip the VB.ZIP file which 3D connexion provides as part of the SDK, and drag the monitor.sln file into Visual Basic Express. You will need to run it through the converter to upgrade to your version of Visual Basic, so just keep pressing Ignore, Yes or Next until it finishes. Hit F5 to try it out. You should see a live readout of the data that the device is feeding back; which button is being pressed, what its rotation is, all sorts of nice, useful stuff. Double click Form1.vb to look at the code. What this is a mixture of massively complex code which the 3D connexion team has written to connect your mouse to your computer, and stuff which we don't actually need. What we're going to do is make a template file from this project. First, go into design view and select all. Delete and go into code view. Delete all code and paste the following in: (Reproduced by kind permission of Logitech) Public Class Form1 Delegate Sub SetMotionTextCallback() Delegate Sub SetKeyTextCallback(ByVal keyCode As Integer) Private WithEvents Sensor As TDxInput.Sensor Private WithEvents Keyboard As TDxInput.Keyboard Private WithEvents Device As TDxInput.Device Public Sub New() Device = New TDxInput.Device Sensor = Device.Sensor Keyboard = Device.Keyboard SetMotionTexts() Device.Connect() End Sub Private Sub Sensor_SensorInput() Handles Sensor.SensorInput Me.SetMotionTexts() End Sub Private Sub SetMotionTexts() Dim Style1 As String = "f" Dim translation As TDxInput.Vector3D translation = Sensor.Translation Dim rotation As TDxInput.AngleAxis rotation = Sensor.Rotation End Sub Protected Overrides Sub Finalize() Device.Disconnect() MyBase.Finalize() End Sub End Class You need to save all of this, by pressing Save All. Now close Visual Basic. To create a new program, create a copy of the template folder and open the Monitor.sln file in Visual Basic. There are ways to create your own from scratch, however, it gets complicated. So, let's have a look at the code: First they start Form1: Public Class Form1 Don't worry about this bit Delegate Sub SetMotionTextCallback() Delegate Sub SetKeyTextCallback(ByVal keyCode As Integer) Here, they add in the TDx Sensor objects. The TDx sensor is the data which the 3D Connexion mouse sends back. Private WithEvents Sensor As TDxInput.Sensor Private WithEvents Keyboard As TDxInput.Keyboard Private WithEvents Device As TDxInput.Device This starts the feed of information Public Sub New() Device = New TDxInput.Device Sensor = Device.Sensor Keyboard = Device.Keyboard SetMotionTexts() Device.Connect() End Sub This is a "listener" for changes in the sensor's state: Private Sub Sensor_SensorInput() Handles Sensor.SensorInput Me.SetMotionTexts() End Sub This is an example procedure using inputs from the mouse: Private Sub SetMotionTexts() Dim Style1 As String = "f" Dim translation As TDxInput.Vector3D translation = Sensor.Translation Dim rotation As TDxInput.AngleAxis rotation = Sensor.Rotation End Sub This 'signs out' from the mouse when you finish with it Protected Overrides Sub Finalize() Device.Disconnect() MyBase.Finalize() End Sub End Class Don't worry about the exact details of this. All you need to know is that it created 7 variables: Rotation.x: The rotation in the x axis as an accurate decimal Rotation.y: Rotation in the y axis given as 0, -1 or 1. Rotation.y * rotation.Angle must be used for this. Rotation.z: rotation in the z axis rotation.angle: The total angle that the device has moved from its rest position translation.x: The total translation in the x axis translation.y: guess translation.z: guess translation.length: The distance the node of the device has moved from rest.