User Manual
Table Of Contents
- Appendix B: Command Generator Examples
- B.1 Device Discovery and Remote Name Request
- B.2 Establish Baseband Connection
- B.3 Baseband Disconnection
- B.4 Create Audio Connection
- B.5 L2CAP Connection
- B.6 L2CAP Channel Disconnect
- B.7 SDP Profile Service Search
- B.8 SDP Reset Database and Add Profile Service Record
- B.9 RFCOMM Client Channel Establishment
- B.10 RFCOMM Client Channel Disconnection
- B.11 RFCOMM Register Server Channel
- B.12 Establish TCS Connection
- B.13 OBEX Server Init
- B.14 OBEX Client Connection and Client Get & Put
- Appendix C: Merlin’s Wand Scripting Commands
- C.1 Bluetooth Addresses
- C.2 Basic Commands
- C.3 Pipe Commands
- C.4 HCI Commands
- HCIAcceptConnectionRequest()
- HCIAddSCOConnection()
- HCIAuthenticationRequested()
- HCICatcBerTest()
- HCICatcChangeHeadsetGain()
- HCICatcEnterTestMode()
- HCICatcReadHeadsetGain()
- HCICatcReadRevisionInformation()
- HCICatcSelfTest()
- HCICatcTestControl()
- HCICatcWriteCountryCode()
- HCIChangeConnectionLinkKey()
- HCIChangeConnectionPacketType()
- HCIChangeLocalName()
- HCIDeleteStoredLinkKey()
- HCIEnableDeviceUnderTestMode()
- HCIExitParkMode()
- HCIExitSniffMode()
- HCIHoldMode()
- HCIMasterLinkKey()
- HCIParkMode()
- HCIPINCodeRequestNegativeReply()
- HCIPINCodeRequestReply()
- HCIQoSSetup()
- HCIReadAuthenticationEnable()
- HCIReadBDADDR()
- HCIReadBufferSize()
- HCIReadClockOffset()
- HCIReadConnectionAcceptTimeout()
- HCIReadCountryCode()
- HCIReadCurrentIACLAP()
- HCIReadEncryptionMode()
- HCIReadLinkPolicySettings()
- HCIReadLinkSupervisionTimeout()
- HCIReadLocalName()
- HCIReadLocalSupportedFeatures()
- HCIReadLocalVersionInformation()
- HCIReadLoopbackMode()
- HCIReadNumberOfSupportedIAC()
- HCIReadPageScanMode()
- HCIReadPageScanPeriodMode()
- HCIReadPageTimeout()
- HCIReadPINType()
- HCIReadRemoteSupportedFeatures()
- HCIReadRemoteVersionInformation()
- HCIReadScanEnable()
- HCIReadSCOFlowControlEnable()
- HCIReadStoredLinkKey()
- HCIReadVoiceSetting()
- HCIRejectConnectionRequest()
- HCIRemoveSCOConnection()
- HCIReset()
- HCIRoleDiscovery()
- HCISetConnectionEncryption()
- HCISetEventFilter()
- HCISniffMode()
- HCISwitchRole()
- HCIWriteAuthenticationEnable()
- HCIWriteConnectionAcceptTimeout()
- HCIWriteCurrentIACLAP()
- HCIWriteEncryptionMode()
- HCIWriteLinkPolicySettings()
- HCIWriteLinkSupervisionTimeout()
- HCIWriteLoopbackMode()
- HCIWritePageTimeout()
- HCIWritePINType()
- HCIWriteScanEnable()
- HCIWriteStoredLinkKey()
- HCIWriteVoiceSettings()
- C.5 OBEX Commands
- C.6 RFCOMM Commands
- RFCloseClientChannel()
- RFOpenClientChannel()
- RFRegisterServerChannel()
- RFSendData()
- RFSendDataFromPipe()
- RFReceiveData()
- RFWaitForConnection()
- RFAcceptChannel()
- RFAcceptPortSettings()
- RFCreditFlowEnabled()
- RFRequestPortSettings()
- RFRequestPortStatus()
- RFSetLineStatus()
- RFSetModemStatus()
- RFSendTest()
- RFAdvanceCredit()
- C.7 TCS Commands
- C.8 L2CAP Commands
- C.9 SDP Commands
- C.10 Merlin Commands
- Appendix D: CATC Scripting Language
276
CATC MERLIN’S WAND 1.22 APPENDIX D
User’s Manual CATC Scripting Language
add(1);
the parameter x will be assigned to 1, and the parameter y will be assigned
to null, resulting in a return value of 1. But if add is called with more than
two arguments
add(1, 2, 3);
x will be assigned to 1, y to 2, and 3 will be ignored, resulting in a return
value of 3.
All parameters are passed by value, not by reference, and can be changed in
the function body without affecting the values that were passed in. For
instance, the function
add_1(x, y)
{
x = 2;
y = 3;
return x + y;
}
reassigns parameter values within the statements. So,
a = 10;
b = 20;
add_1(a, b);
will have a return value of 5, but the values of a and b won't be changed.
The scope of a function is the file in which it is defined (as well as included
files), with the exception of primitive functions, whose scopes are global.
Calls to undefined functions are legal, but will always evaluate to null and
result in a compiler warning.
D.12 Primitives
Primitive functions are called similarly to regular functions, but they are
implemented outside of the language. Some primitives support multiple
types for certain arguments, but in general, if an argument of the wrong type
is supplied, the function will return null.