Error code decoder


#1

I’m guessing many of you have used the handy feature in PAC Control under Help > Error Lookup which takes an error code, say:
[B][INDENT]-9[/INDENT] [/B]
and converts it into more human understandable text, like:
[B][INDENT]“Timeout. No response from device. Check hardware connection, address, power, and jumpers.”[/INDENT][/B]
You’ll see these same error descriptions when inspecting the message queue.

But have you ever wanted to have this information available from within your strategy, perhaps to display in PAC Display or log to a file? I’ve attached a subroutine to convert the current error values into their corresponding messages (remember that these might be expanded in the future).

Below I’ve included the code if you’d just like to copy it directly. For more info on all of these, see form 1700: PAC Control User’s Guide, appendix B.

  switch( nErrorNumber )
      case -1: sName = "Undefined command."; break
      case -2: sName = "Checksum or CRC mismatch."; break
      case -3: sName = "Buffer overrun or invalid length error."; break
      case -4: sName = "Device has powered up. ('Powerup clear expected' message received.),"; break
      case -5: sName = "Error, Operation failed."; break
      case -6: sName = "Data field error."; break
      case -7: sName = "Watchdog timeout has occurred."; break
      case -8: sName = "Invalid data."; break
      case -9: sName = "Timeout. No response from device. Check hardware connection, address, power, and jumpers."; break
      case -10: sName = "Invalid port number."; break
      case -11: sName = "Could not send data."; break
      case -12: sName = "Invalid table index."; break
      case -13: sName = "Overflow error."; break
      case -14: sName = "Invalid number."; break
      case -15: sName = "Cannot divide by zero."; break
      case -16: sName = "Bus error."; break
      case -17: sName = "Port or object is already locked."; break
      case -18: sName = "I/O Unit not configured."; break
      case -19: sName = "Reading hold for wrong reaction type."; break
      case -20: sName = "Device busy. May be in use by another user or another application."; break
      case -21: sName = "Had to relock host port in 'QUIT'"; break
      case -22: sName = "Command not valid on specified I/O Unit."; break
      case -23: sName = "Destination string too short."; break
      case -24: sName = "Device does not understand command."; break
      case -25: sName = "Port or object is not locked."; break
      case -26: sName = "Unknown response from device."; break
      case -27: sName = "Invalid limit error. High/Low values may be reversed."; break
      case -28: sName = "Object not found."; break
      case -29: sName = "Wrong object type. Most likely caused by moving a pointer table element to a pointer of the wrong type."; break
      case -30: sName = "Pointer was not initialized."; break
      case -31: sName = "Cannot store local subroutine object into a pointer table parameter."; break
      case -32: sName = "Device has not been initialized."; break
      case -33: sName = "Unable to clear all characters from port."; break
      case -34: sName = "Invalid I/O command or invalid memory location."; break
      case -35: sName = "I/O point mismatch: a configured point does not match the point type found on the I/O Unit or is a point type not supported by the I/O Unit's firmware. Check www.opto22.com for firmware updates."; break
      case -36: sName = "Invalid command or feature not implemented."; break
      case -37: sName = "Timeout on lock."; break
      case -38: sName = "Timeout on send."; break
      case -39: sName = "Timeout on receive."; break
      case -40: sName = "Not enough data returned. (Received less than expected."; break
      case -41: sName = "Invalid return data."; break
      case -42: sName = "Invalid limit (on string index, task state, priority, etc."; break
      case -43: sName = "Received a NACK."; break
      case -44: sName = "String too short."; break
      case -45: sName = "Null string."; break
      case -46: sName = "Invalid string."; break
      case -47: sName = "Open failed--handle has already been opened."; break
      case -48: sName = "No such device available."; break
      case -49: sName = "No more connections are available. Maximum number of connections already in use."; break
      case -50: sName = "Open connection timeout. Could not establish connection within the timeout period."; break
      case -51: sName = "Close connection timeout. Could not close connection within timeout period."; break
      case -52: sName = "Invalid connection -- not opened."; break
      case -53: sName = "Connection number not valid."; break
      case -54: sName = "No active connection for specified port."; break
      case -55: sName = "Control engine type is invalid for the function requested."; break
      case -56: sName = "Invalid address."; break
      case -57: sName = "String not found."; break
      case -58: sName = "No data received."; break
      case -59: sName = "Could not receive data."; break
      case -60: sName = "Empty stack error. Control engine attempted to perform an operation that expected data on the control engine stack."; break
      case -61: sName = "Dictionary full error. Control engine dictionary is full and no more 'words' can be defined. Clear PAC Display words using PAC Display or PAC Terminal, if appropriate."; break
      case -62: sName = "Stack full error. Control engine stack has grown too big."; break
      case -63: sName = "Compile-only error. A command or 'word' was encountered that should only be used when compiling commands or 'words'"; break
      case -64: sName = "Execute-only error. A command or 'word' was encountered that cannot be used when compiling."; break
      case -65: sName = "Definition not finished."; break
      case -66: sName = "Requested item in protected dictionary,"; break
      case -67: sName = "Out of memory. To minimize the size of your strategy, reduce the number and size of variables (especially tables). You can also shrink your strategy by using subroutines to perform common tasks."; break
      case -68: sName = "Conditionals do not match."; break
      case -69: sName = "Invalid parameter (null pointer) passed to command."; break
      case -70: sName = "Not enough data supplied."; break
      case -71: sName = "Out of persistent memory. If applicable, check length of tables."; break
      case -72: sName = "Too many nested subroutines (one calls another calls another)"; break
      case -73: sName = "Invalid subroutine parameters. Too many or paramters passed or incorrect subroutine."; break
      case -74: sName = "Invalid filename. Check length and special characters."; break
      case -75: sName = "No remaining file handles."; break
      case -76: sName = "End of file error. Attempted to access data past the end of the file."; break
      case -77: sName = "Host task failed. Possible cause: specified host port is already in use, or host attempted to load a non-existent strategy file."; break
      case -78: sName = "No destination given (the name of the file ftp on the remote server)"; break
      case -79: sName = "I/O Unit mismatch: the configured I/O Unit type does not match the unit type found."; break
      case -80: sName = "Reboot for changes to the Windows Registry to take effect."; break
      case -81: sName = "Error writing to the memory map."; break
      case -82: sName = "Error reading from the memory map."; break
      case -83: sName = "Invalid severity. Valid values: Info = 4 , Warn = 8, Error = 16,"; break
      case -84: sName = "Can't reallocate memory while it is in use by a subroutine."; break
      case -85: sName = "Semaphore creation error."; break
      case -86: sName = "Semaphore creation error."; break
      case -87: sName = "Open error."; break
      case -88: sName = "Semaphore creation error."; break
      case -89: sName = "Semaphore creation error."; break
      case -90: sName = "Semaphore creation error."; break
      case -91: sName = "Semaphore creation error."; break
      case -92: sName = "Open UART error."; break
      case -93: sName = "I/O Unit not enabled. Previous communication failure may have disabled the unit automatically. Reenable it and try again."; break
      case -94: sName = "Trying to enable NULL event, or bad event command."; break
      case -100: sName = "Invalid length for control engine name. Must be 1 to 31 characters."; break
      case -101: sName = "Invalid character in control engine name. Valid characters are letters, numbers, spaces, and most other characters except colons and square brackets. Spaces cannot be used as first or last characters."; break
      case -102: sName = "First and last characters in control engine name cannot be spaces."; break
      case -103: sName = "Could not unlock. The task attempting to do the unlock does not match the task that currently has the lock."; break
      case -104: sName = "Bad key data (data is missing, bad length, or corrrupt)"; break
      case -105: sName = "Decryption failure,"; break
      case -106: sName = "Encryption failure,"; break
      case -107: sName = "The board is offline or disabled; no send/receive attempt made,"; break
      case -108: sName = "An operation was interrupted,"; break
      case -109: sName = "Performed a write to read-only memory,"; break
      case -110: sName = "The microSD card is missing."; break
      case -111: sName = "The hardware doesn't support this feature."; break
      case -112: sName = "NVRAM is corrupt; battery may need to be replaced."; break

      case -203: sName = "Driver could not be found or loaded."; break
      case -204: sName = "Could not write new entry to Windows Registry. Make sure you have administrative privileges for the operating system."; break
      case -205: sName = "Could not read value(s) from Windows Registry."; break
      case -206: sName = "Startup data in Windows Registry is invalid or missing."; break
      case -207: sName = "Duplicate entry already exists in Windows Registry."; break

      case -300: sName = "No response from modem during attempt to dial. Use HyperTerminal to make sure modem responds with 'OK' to the 'AT' command."; break
      case -301: sName = "The type of port is invalid for this operation. For example, a dialing a modem was attempted on an ARCNET port."; break
      case -302: sName = "Error issuing a dial command to modem. Perhaps the dial string is empty."; break
      case -303: sName = "Timeout waiting for modem to connect."; break
      case -304: sName = "Could not connect. Phone line may be busy."; break
      case -305: sName = "Could not find modem handle. Hang up and dial again."; break
      case -400: sName = "Control engine previously acquired by another process."; break
      case -403: sName = "Internal control engine handle invalid."; break
      case -404: sName = "RPC binding error. NetBios might not be running."; break
      case -405: sName = "RPC call error. Verify that all appropriate protocols are installed and running."; break
      case -406: sName = "Control engine inaccessible. Cannot acquire lock."; break
      case -407: sName = "File not found."; break
      case -408: sName = "Error during file access."; break
      case -409: sName = "Operation cancelled by user."; break
      case -410: sName = "Dictionary is incomplete after flash download."; break
      case -411: sName = "Ethernet: Invalid socket,"; break
      case -412: sName = "Ethernet: Cannot connect error. Check IP address and subnet mask."; break
      case -413: sName = "Invalid idb file name."; break
      case -414: sName = "Out of handles to open."; break
      case -415: sName = "Cannot create file."; break
      case -416: sName = "Cannot create temporary file."; break
      case -417: sName = "Cannot open file."; break
      case -418: sName = "Cannot read file."; break
      case -419: sName = "Not a valid PAC Control file."; break
      case -420: sName = "Invalid handle."; break
      case -421: sName = "Write access not allowed."; break
      case -422: sName = "Cannot copy temporary .idb file."; break
      case -423: sName = "Cannot rename temporary file."; break
      case -424: sName = "Cannot delete temporary file."; break
      case -425: sName = "Invalid storage format."; break
      case -426: sName = "Incorrect number of objects specified."; break
      case -427: sName = "Invalid bitmask for binary storage."; break
      case -428: sName = "Cannot open dump output file."; break
      case -429: sName = "The strategy you're attempting to open was last saved with a newer version of PAC Control than the one you're currently using. You may need to update your version of PAC Control."; break
      case -430: sName = "Invalid data range. Verify high value is greater than low value."; break
      case -431: sName = "Cannot release object/device (may not be locked)"; break
      case -432: sName = "Cannot unlock object/device (may not be locked) -- in use by another process."; break
      case -433: sName = "Object/device already locked."; break
      case -434: sName = "The control engine is in use by another process on this computer, or may be unreachable."; break
      case -435: sName = "Check the strategy on control engine."; break
      case -436: sName = "Memory exception during a database operation."; break
      case -437: sName = "No acceptable socket interface found."; break
      case -438: sName = "Could not create socket."; break
      case -439: sName = "Not connected."; break
      case -440: sName = "Could not bind socket."; break
      case -441: sName = "Not listening on socket."; break
      case -442: sName = "Could not accept on socket."; break
      case -443: sName = "Could not receive on socket."; break
      case -444: sName = "Could not send on socket."; break
      case -445: sName = "ioCdb: The file format change has been rejected by the user."; break
      case -446: sName = "FTP: login failed. Check username, password, and max login on the server,"; break
      case -447: sName = "FTP: connect failed. Check IP address and port."; break
      case -448: sName = "FTP: could not create session. Check IP address and port."; break
      case -449: sName = "FTP: error while setting local port number that incoming data connections should use."; break
      case -450: sName = "DNS could not resolve host name to an IP address."; break
      case -451: sName = "SMTP: Login failed.  Check username and password."; break
      case -452: sName = "File already exists."; break
      case -453: sName = "Invalid pathname or drive specification."; break
      case -454: sName = "Unable to connect to DNS server. Check DNS and gateway configuration."; break

      case -500: sName = "ConnectionDef missing or not defined."; break
      case -501: sName = "Could not open recordset."; break
      case -502: sName = "DAO exception."; break
      case -503: sName = "Invalid database table length."; break
      case -504: sName = "Invalid state for database handshake (neither IDLE, XFER_REQUEST nor STATE_IN_PROGRESS)"; break
      case -505: sName = "No database handshake found for the table."; break
      case -506: sName = "Could not write to ErrorLog."; break
      case -507: sName = "Cannot write to a digital/analog input. Only outputs may be written to."; break
      case -508: sName = "Invalid state for control engine handshake (neither IDLE, XFER_REQUEST nor STATE_IN_PROGRESS)"; break
      case -509: sName = "Failure resetting control engine handshake."; break
      case -510: sName = "Failure updating control engine handshake."; break
      case -511: sName = "Failure writing to database."; break
      case -512: sName = "Failure reading from database."; break
      case -513: sName = "Failure writing to control engine."; break
      case -514: sName = "Failure reading from control engine."; break
      case -515: sName = "Runtime tables did not validate or were not created."; break
      case -516: sName = "Problem opening recordset for writing."; break
      case -517: sName = "Empty record in write table."; break
      case -518: sName = "Failure opening runtime database."; break
      case -519: sName = "No tags to read/write."; break
      case -520: sName = "Failure opening master project database."; break
      case -521: sName = "Failure loading project from master project database."; break
      case -522: sName = "Could not delete contents of a table."; break
      case -523: sName = "Firmware version could not be read. Possible cause: firmware out of date."; break
      case -524: sName = "Could not read firmware version. Possible cause: EPROM out of date."; break
      case -525: sName = "Strategy time/date stamp mismatch."; break
      case -526: sName = "Strategy name mismatch."; break
      case -527: sName = "Invalid typemask used."; break
      case -528: sName = "Failure deleting records from table."; break
      case -529: sName = "Failure writing to table."; break
      case -530: sName = "Invalid control engine name. Control engine not configured (name not in Windows Registry). Make sure the control engine name is not misspelled."; break
      case -531: sName = "Buffer full."; break
      case -532: sName = "Buffer empty."; break
      case -533: sName = "Control engine type mismatch. Control engine is not supported by this version of software."; break
      case -534: sName = "Attempt(s) to communicate with I/O Unit failed."; break
      case -535: sName = "I/O unit has successfully switched to alternate target address."; break
      case -536: sName = "All target addresses disabled on I/O unit."; break
      case -537: sName = "All target addresses on I/O unit already assigned."; break
      case -538: sName = "The address string passed does not match the passed I/O unit's address."; break
      case -539: sName = "I/O error; performing retry."; break
      case -540: sName = "The strategy in RAM has not been burned to flash."; break
      case -541: sName = "A incorrect configuration was detected on an I/O unit."; break
      case -542: sName = "I/O unit configuration completed."; break

      case -600: sName = "Redundant controller qualification failed."; break
      case -601: sName = "Unable to connect to an active controller."; break
      case -602: sName = "Redundant backup controller is not compatible with active controller."; break
      case -603: sName = "Redundant controller not yet set as active or backup."; break
      case -604: sName = "Redundant backup kernel update failed."; break
      case -605: sName = "Redundant backup strategy update failed."; break
      case -606: sName = "Redundant command issued on non-redundant, or wrong (active vs backup) controller."; break
      case -607: sName = "Redundant command received out of order."; break
      case -608: sName = "Redundant sync command received with no task ptr."; break
      case -609: sName = "Redundant STEP command timeout."; break
      case -610: sName = "Redundant message failure."; break
      case -611: sName = "Cannot download redundant strategy to non-redundant controller or non-redundant strategy to redundant controller."; break
      case -612: sName = "Unable to enqueue sync command,"; break
      case -613: sName = "I/O configuration failed,"; break
      case -614: sName = "Incompatible I/O unit firmware."; break
      case -615: sName = "I/O monitor cannot communicate with I/O unit."; break

      case -700: sName = "PID Loop 0 has been configured outside of this strategy (in PAC Manager or in another strategy), and could conflict with this strategy's logic."; break
      case -701: sName = "PID Loop 1 has been configured outside of this strategy (in PAC Manager or in another strategy), and could conflict with this strategy's logic."; break
      case -702: sName = "PID Loop 2 has been configured outside of this strategy (in PAC Manager or in another strategy), and could conflict with this strategy's logic."; break
      case -703: sName = "PID Loop 3 has been configured outside of this strategy (in PAC Manager or in another strategy), and could conflict with this strategy's logic."; break
      case -704: sName = "PID Loop 4 has been configured outside of this strategy (in PAC Manager or in another strategy), and could conflict with this strategy's logic."; break
      case -705: sName = "PID Loop 5 has been configured outside of this strategy (in PAC Manager or in another strategy), and could conflict with this strategy's logic."; break
      case -706: sName = "PID Loop 6 has been configured outside of this strategy (in PAC Manager or in another strategy), and could conflict with this strategy's logic."; break
      case -707: sName = "PID Loop 7 has been configured outside of this strategy (in PAC Manager or in another strategy), and could conflict with this strategy's logic."; break
      case -708: sName = "PID Loop 8 has been configured outside of this strategy (in PAC Manager or in another strategy), and could conflict with this strategy's logic."; break
      case -709: sName = "PID Loop 9 has been configured outside of this strategy (in PAC Manager or in another strategy), and could conflict with this strategy's logic."; break
      case -710: sName = "PID Loop 10 has been configured outside of this strategy (in PAC Manager or in another strategy), and could conflict with this strategy's logic."; break
      case -711: sName = "PID Loop 11 has been configured outside of this strategy (in PAC Manager or in another strategy), and could conflict with this strategy's logic."; break
      case -712: sName = "PID Loop 12 has been configured outside of this strategy (in PAC Manager or in another strategy), and could conflict with this strategy's logic."; break
      case -713: sName = "PID Loop 13 has been configured outside of this strategy (in PAC Manager or in another strategy), and could conflict with this strategy's logic."; break
      case -714: sName = "PID Loop 14 has been configured outside of this strategy (in PAC Manager or in another strategy), and could conflict with this strategy's logic."; break
      case -715: sName = "PID Loop 15 has been configured outside of this strategy (in PAC Manager or in another strategy), and could conflict with this strategy's logic."; break
      case -716: sName = "PID Loop 16 has been configured outside of this strategy (in PAC Manager or in another strategy), and could conflict with this strategy's logic."; break
      case -717: sName = "PID Loop 17 has been configured outside of this strategy (in PAC Manager or in another strategy), and could conflict with this strategy's logic."; break
      case -718: sName = "PID Loop 18 has been configured outside of this strategy (in PAC Manager or in another strategy), and could conflict with this strategy's logic."; break
      case -719: sName = "PID Loop 19 has been configured outside of this strategy (in PAC Manager or in another strategy), and could conflict with this strategy's logic."; break
      case -720: sName = "PID Loop 20 has been configured outside of this strategy (in PAC Manager or in another strategy), and could conflict with this strategy's logic."; break
      case -721: sName = "PID Loop 21 has been configured outside of this strategy (in PAC Manager or in another strategy), and could conflict with this strategy's logic."; break
      case -722: sName = "PID Loop 22 has been configured outside of this strategy (in PAC Manager or in another strategy), and could conflict with this strategy's logic."; break
      case -723: sName = "PID Loop 23 has been configured outside of this strategy (in PAC Manager or in another strategy), and could conflict with this strategy's logic."; break
      case -724: sName = "PID Loop 24 has been configured outside of this strategy (in PAC Manager or in another strategy), and could conflict with this strategy's logic."; break
      case -725: sName = "PID Loop 25 has been configured outside of this strategy (in PAC Manager or in another strategy), and could conflict with this strategy's logic."; break
      case -726: sName = "PID Loop 26 has been configured outside of this strategy (in PAC Manager or in another strategy), and could conflict with this strategy's logic."; break
      case -727: sName = "PID Loop 27 has been configured outside of this strategy (in PAC Manager or in another strategy), and could conflict with this strategy's logic."; break
      case -728: sName = "PID Loop 28 has been configured outside of this strategy (in PAC Manager or in another strategy), and could conflict with this strategy's logic."; break
      case -729: sName = "PID Loop 29 has been configured outside of this strategy (in PAC Manager or in another strategy), and could conflict with this strategy's logic."; break
      case -730: sName = "PID Loop 30 has been configured outside of this strategy (in PAC Manager or in another strategy), and could conflict with this strategy's logic."; break
      case -731: sName = "PID Loop 31 has been configured outside of this strategy (in PAC Manager or in another strategy), and could conflict with this strategy's logic."; break
      case -732: sName = "PID Loop 32 has been configured outside of this strategy (in PAC Manager or in another strategy), and could conflict with this strategy's logic."; break
      case -733: sName = "PID Loop 33 has been configured outside of this strategy (in PAC Manager or in another strategy), and could conflict with this strategy's logic."; break
      case -734: sName = "PID Loop 34 has been configured outside of this strategy (in PAC Manager or in another strategy), and could conflict with this strategy's logic."; break
      case -735: sName = "PID Loop 35 has been configured outside of this strategy (in PAC Manager or in another strategy), and could conflict with this strategy's logic."; break
      case -736: sName = "PID Loop 36 has been configured outside of this strategy (in PAC Manager or in another strategy), and could conflict with this strategy's logic."; break
      case -737: sName = "PID Loop 37 has been configured outside of this strategy (in PAC Manager or in another strategy), and could conflict with this strategy's logic."; break
      case -738: sName = "PID Loop 38 has been configured outside of this strategy (in PAC Manager or in another strategy), and could conflict with this strategy's logic."; break
      case -739: sName = "PID Loop 39 has been configured outside of this strategy (in PAC Manager or in another strategy), and could conflict with this strategy's logic."; break
      case -740: sName = "PID Loop 40 has been configured outside of this strategy (in PAC Manager or in another strategy), and could conflict with this strategy's logic."; break
      case -741: sName = "PID Loop 41 has been configured outside of this strategy (in PAC Manager or in another strategy), and could conflict with this strategy's logic."; break
      case -742: sName = "PID Loop 42 has been configured outside of this strategy (in PAC Manager or in another strategy), and could conflict with this strategy's logic."; break
      case -743: sName = "PID Loop 43 has been configured outside of this strategy (in PAC Manager or in another strategy), and could conflict with this strategy's logic."; break
      case -744: sName = "PID Loop 44 has been configured outside of this strategy (in PAC Manager or in another strategy), and could conflict with this strategy's logic."; break
      case -745: sName = "PID Loop 45 has been configured outside of this strategy (in PAC Manager or in another strategy), and could conflict with this strategy's logic."; break
      case -746: sName = "PID Loop 46 has been configured outside of this strategy (in PAC Manager or in another strategy), and could conflict with this strategy's logic."; break
      case -747: sName = "PID Loop 47 has been configured outside of this strategy (in PAC Manager or in another strategy), and could conflict with this strategy's logic."; break
      case -748: sName = "PID Loop 48 has been configured outside of this strategy (in PAC Manager or in another strategy), and could conflict with this strategy's logic."; break
      case -749: sName = "PID Loop 49 has been configured outside of this strategy (in PAC Manager or in another strategy), and could conflict with this strategy's logic."; break
      case -750: sName = "PID Loop 50 has been configured outside of this strategy (in PAC Manager or in another strategy), and could conflict with this strategy's logic."; break
      case -751: sName = "PID Loop 51 has been configured outside of this strategy (in PAC Manager or in another strategy), and could conflict with this strategy's logic."; break
      case -752: sName = "PID Loop 52 has been configured outside of this strategy (in PAC Manager or in another strategy), and could conflict with this strategy's logic."; break
      case -753: sName = "PID Loop 53 has been configured outside of this strategy (in PAC Manager or in another strategy), and could conflict with this strategy's logic."; break
      case -754: sName = "PID Loop 54 has been configured outside of this strategy (in PAC Manager or in another strategy), and could conflict with this strategy's logic."; break
      case -755: sName = "PID Loop 55 has been configured outside of this strategy (in PAC Manager or in another strategy), and could conflict with this strategy's logic."; break
      case -756: sName = "PID Loop 56 has been configured outside of this strategy (in PAC Manager or in another strategy), and could conflict with this strategy's logic."; break
      case -757: sName = "PID Loop 57 has been configured outside of this strategy (in PAC Manager or in another strategy), and could conflict with this strategy's logic."; break
      case -758: sName = "PID Loop 58 has been configured outside of this strategy (in PAC Manager or in another strategy), and could conflict with this strategy's logic."; break
      case -759: sName = "PID Loop 59 has been configured outside of this strategy (in PAC Manager or in another strategy), and could conflict with this strategy's logic."; break
      case -760: sName = "PID Loop 60 has been configured outside of this strategy (in PAC Manager or in another strategy), and could conflict with this strategy's logic."; break
      case -761: sName = "PID Loop 61 has been configured outside of this strategy (in PAC Manager or in another strategy), and could conflict with this strategy's logic."; break
      case -762: sName = "PID Loop 62 has been configured outside of this strategy (in PAC Manager or in another strategy), and could conflict with this strategy's logic."; break
      case -763: sName = "PID Loop 63 has been configured outside of this strategy (in PAC Manager or in another strategy), and could conflict with this strategy's logic."; break
      case -764: sName = "PID Loop 64 has been configured outside of this strategy (in PAC Manager or in another strategy), and could conflict with this strategy's logic."; break
      case -765: sName = "PID Loop 65 has been configured outside of this strategy (in PAC Manager or in another strategy), and could conflict with this strategy's logic."; break
      case -766: sName = "PID Loop 66 has been configured outside of this strategy (in PAC Manager or in another strategy), and could conflict with this strategy's logic."; break
      case -767: sName = "PID Loop 67 has been configured outside of this strategy (in PAC Manager or in another strategy), and could conflict with this strategy's logic."; break
      case -768: sName = "PID Loop 68 has been configured outside of this strategy (in PAC Manager or in another strategy), and could conflict with this strategy's logic."; break
      case -769: sName = "PID Loop 69 has been configured outside of this strategy (in PAC Manager or in another strategy), and could conflict with this strategy's logic."; break
      case -770: sName = "PID Loop 70 has been configured outside of this strategy (in PAC Manager or in another strategy), and could conflict with this strategy's logic."; break
      case -771: sName = "PID Loop 71 has been configured outside of this strategy (in PAC Manager or in another strategy), and could conflict with this strategy's logic."; break
      case -772: sName = "PID Loop 72 has been configured outside of this strategy (in PAC Manager or in another strategy), and could conflict with this strategy's logic."; break
      case -773: sName = "PID Loop 73 has been configured outside of this strategy (in PAC Manager or in another strategy), and could conflict with this strategy's logic."; break
      case -774: sName = "PID Loop 74 has been configured outside of this strategy (in PAC Manager or in another strategy), and could conflict with this strategy's logic."; break
      case -775: sName = "PID Loop 75 has been configured outside of this strategy (in PAC Manager or in another strategy), and could conflict with this strategy's logic."; break
      case -776: sName = "PID Loop 76 has been configured outside of this strategy (in PAC Manager or in another strategy), and could conflict with this strategy's logic."; break
      case -777: sName = "PID Loop 77 has been configured outside of this strategy (in PAC Manager or in another strategy), and could conflict with this strategy's logic."; break
      case -778: sName = "PID Loop 78 has been configured outside of this strategy (in PAC Manager or in another strategy), and could conflict with this strategy's logic."; break
      case -779: sName = "PID Loop 79 has been configured outside of this strategy (in PAC Manager or in another strategy), and could conflict with this strategy's logic."; break
      case -780: sName = "PID Loop 80 has been configured outside of this strategy (in PAC Manager or in another strategy), and could conflict with this strategy's logic."; break
      case -781: sName = "PID Loop 81 has been configured outside of this strategy (in PAC Manager or in another strategy), and could conflict with this strategy's logic."; break
      case -782: sName = "PID Loop 82 has been configured outside of this strategy (in PAC Manager or in another strategy), and could conflict with this strategy's logic."; break
      case -783: sName = "PID Loop 83 has been configured outside of this strategy (in PAC Manager or in another strategy), and could conflict with this strategy's logic."; break
      case -784: sName = "PID Loop 84 has been configured outside of this strategy (in PAC Manager or in another strategy), and could conflict with this strategy's logic."; break
      case -785: sName = "PID Loop 85 has been configured outside of this strategy (in PAC Manager or in another strategy), and could conflict with this strategy's logic."; break
      case -786: sName = "PID Loop 86 has been configured outside of this strategy (in PAC Manager or in another strategy), and could conflict with this strategy's logic."; break
      case -787: sName = "PID Loop 87 has been configured outside of this strategy (in PAC Manager or in another strategy), and could conflict with this strategy's logic."; break
      case -788: sName = "PID Loop 88 has been configured outside of this strategy (in PAC Manager or in another strategy), and could conflict with this strategy's logic."; break
      case -789: sName = "PID Loop 89 has been configured outside of this strategy (in PAC Manager or in another strategy), and could conflict with this strategy's logic."; break
      case -790: sName = "PID Loop 90 has been configured outside of this strategy (in PAC Manager or in another strategy), and could conflict with this strategy's logic."; break
      case -791: sName = "PID Loop 91 has been configured outside of this strategy (in PAC Manager or in another strategy), and could conflict with this strategy's logic."; break
      case -792: sName = "PID Loop 92 has been configured outside of this strategy (in PAC Manager or in another strategy), and could conflict with this strategy's logic."; break
      case -793: sName = "PID Loop 93 has been configured outside of this strategy (in PAC Manager or in another strategy), and could conflict with this strategy's logic."; break
      case -794: sName = "PID Loop 94 has been configured outside of this strategy (in PAC Manager or in another strategy), and could conflict with this strategy's logic."; break
      case -795: sName = "PID Loop 95 has been configured outside of this strategy (in PAC Manager or in another strategy), and could conflict with this strategy's logic."; break

      case -8607: sName = "Invalid protocol."; break
      case -8608: sName = "Port initialization failed."; break
      case -8612: sName = "Old response to new command"; break

      default: NumberToString(nErrorNumber, sName); break
   endswitch

I hope that’s useful!
-OptoMary

[ATTACH]337[/ATTACH].


#2

Great Idea…
Thanks


#3

Nice stuff!


#4

How can i resolve -454 and -443 errors?

Errors coming in sending mails


#5

I did a search for -454 in the Forums, and found this one; PAC Control "Open Outgoing Communication" command returning uncommon error code

The other error is a little trickier, it may be related to the first one, or to gmail itself. (I am assuming you are trying to send gmail?).

Bottom line for both, check DNS, gateway and IP addresses through the path.


#6

Yeah i am trying to send gmail, but unable to do due to this error. Guide me to change the gateway and DNS server address of the strategy. I have changed the gateway and DNS by the PAC manager but still the error comes along. I have used an Ethernet switch in which my laptop, the R1 controller and my internet network is connected. Guide me solving these errors.


#7

Please work with your IT department to get those settings sorted.

Also there is a lot of help given in this thread here; Send an email from a controller


#8

Thank you very much for your guidance :slight_smile:


#9

Great Stuff! Thank you