oOrbitSwitch8 Object

Back to top of page Description:
 The oOrbitSwitch8 Object is an I/O Function Object that reads a group of 8 switch inputs arranged in a circular fashion and calculates a value based on which side of the circle the switches are closed.
 The following table lists the size and availability of the oOrbitSwitch8 Object.
 ObjectSizeDescriptionA1A2B1B2C1
oOrbitSwitch84 BytesReads a circular array of 8 switches.xx
Back to top of page Operation:
 

The oOrbitSwitch4 Object uses the 8 I/O lines specified by the IOGroup property to read a group of 8 switches arranged like the points of a compass plus the in-between points.  Based on which switch is closed, a Heading value is calculated that indicates the general direction of the closed switch.  In addition, if any two adjacent switches are pressed at the same time, the Heading value will indicate the direction of a point between the two switches.

The Value that is calculated for the Heading is based on URCP Heading values. 

When any one of the 8 switches or two adjacent switches are closed, the Pressed property will be set to 1 and when all 8 switches are not closed, the Pressed property is cleared to 0. 

Back to top of page Properties:

The following table lists the properties of the oOrbitSwitch8 Object:

Property

Description

Heading
A value that indicates the heading in the direction of the bumper switch that has been pressed.
Object Class: oHeading Value Range: -128 to +127
Data Type: Numeric Default Value: 0
I/O InputsBumpersHeadingPressed3 or 4 adjacent switches pressed


URCP Heading

I/O InputsBumpers
00000001-------x0110010001x-----xx
00010001------xx16110010011x----xxx
00010000------x-32100010011-----xxx
00010010-----xx-48100110011----xxxx
00000010-----x--64100110010----xxx-
00100010----xx--80100110110---xxxx-
00100000----x---96100100110---xxx--
00100100---xx---112101100110--xxxx--
00000100---x-----128101100100--xxx---
01000100--xx-----112101101100-xxxx---
01000000--x------96101001100-xxx----
01001000-xx------80111001100xxxx----
00001000-x-------64111001000xxx-----
10001000xx-------48111001001xxx----x
10000000x--------32110001001xx-----x
10000001x------x-16110011001xx----xx
Other Unchanged0 
Pressed
A value that indicates if any of the switches are pressed.
Object Class: oLogic Value Range: 0 - 1
Data Type: Numeric Default Value: 0
IOGroup
A value that specifies which group of 8 I/O lines is connected to the switches.
Object Class: oIOGroup Value Range: 0 - 3
Data Type: Numeric Default Value: 0
Some I/O Lines have special purposes.  Be sure to see oIOGroup for details.
Operate
A value that selects whether or not the switches are being read.
Object Class: oOperate Value Range: 0 - 1
Data Type: Numeric Default Value: 0
OperateConstantDescription
0cvOff

The I/O lines are not read.

1cvOn

The I/O lines are read.

Address
Returns a pointer to the address of the oCounter Object instance.
Object Class: oAddress Value Range: 0 - 127
Data Type:Pointer (Read Only) Default Value: Address of Object

Back to top of page Example:

The following examples use the oOrbitSwitch8 Object.
Visual Basic Syntax C and Java Syntax
' This program reads a 8 switch
' bumper, displays the URCP 
' heading value on I/O lines 
' 24 - 31 and the Received
' property on I/O line 7.

Dim A As New oOrbitSwitch8
Dim B As New oDIO8
Dim C As New oDIO1

Sub Main()
  ooPIC.PullUp = 1
  A.IOGroup = 1
  A.Operate = cvTrue
  B.IOGroup = 3 
  B.Direction = cvOutput
  C.IOLine = 7
  C.Direction = cvOutput
  Do
    B.Value = A.Value
    C.Value = A.Pressed
  Loop
End Sub
// This program reads a 8 switch
// bumper, displays the URCP
// heading value on I/O lines
// 24 - 31 and the Received
// property on I/O line 7.

oOrbitSwitch8 A = New oOrbitSwitch8;
oDIO8 B = New oDIO8;
oDIO1 C = New oDIO1;

Void Main(Void){
  ooPIC.PullUp = 1;
  A.IOGroup = 1;
  A.Operate = cvTrue;
  B.IOGroup = 3;
  B.Direction = cvOutput;
  C.IOLine = 7;
  C.Direction = cvOutput;
  Do{
    B.Value = A.Value;
    C.Value = A.Pressed;
  } While (1);
}
Basic Syntax 
' This program reads a 8 switch
' bumper, displays the URCP 
' heading value on I/O lines 
' 24 - 31 and the Received
' property on I/O line 7.

A Var oOrbitSwitch8(1,cvOn)
B Var oDIO8(3,cvOutput)
C Var oDIO1(7,cvOutput)

ooPIC.PullUp = 1
Do
  B.Value = A.Value
  C.Value = A.Pressed
Loop
 
Back to top of page Connections:
See the oBumper8 Object for connection examples.

Back to top of page Related Items:

 The following table lists objects that use the oOrbitSwitch8 Object.
 ObjectDescriptionA1A2B1B2C1
oBumper8Reads an 8-contact bumper.xx
 The following table lists objects with related functions
 ObjectDescriptionA1A2B1B2C1
oOrbitSwitch4Reads a circular array of 4 switches.xx
Back to top of page Version History and Bug List:
 Firmware Ver B2: Introduced.

Bugs: No known bugs.


ooPIC Compiler Ver 6.0 (c) Copyright 1997 - 2007 Savage Innovations, LLC.