VOC Optimation
[owSlave2.git] / tools_cmd / rwOW / tmexses.c
index 793d650..fea8798 100644 (file)
-//---------------------------------------------------------------------------
-// Copyright (C) 2001 Dallas Semiconductor Corporation, All Rights Reserved.
-//
-// Permission is hereby granted, free of charge, to any person obtaining a
-// copy of this software and associated documentation files (the "Software"),
-// to deal in the Software without restriction, including without limitation
-// the rights to use, copy, modify, merge, publish, distribute, sublicense,
-// and/or sell copies of the Software, and to permit persons to whom the
-// Software is furnished to do so, subject to the following conditions:
-//
-// The above copyright notice and this permission notice shall be included
-// in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY,  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-// IN NO EVENT SHALL DALLAS SEMICONDUCTOR BE LIABLE FOR ANY CLAIM, DAMAGES
-// OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-// ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-// OTHER DEALINGS IN THE SOFTWARE.
-//
-// Except as contained in this notice, the name of Dallas Semiconductor
-// shall not be used except as stated in the Dallas Semiconductor
-// Branding Policy.
-//---------------------------------------------------------------------------
-//
-//  owsestmx.c - Acquire and release a Session on the 1-Wire Net using TMEX.
-//               (Requires TMEX 3.11 or newer)
-//
-//  Version: 2.01
-//
-//  History: 1.03 -> 2.00  Changed 'MLan' to 'ow'. Added support for
-//                         multiple ports.
-//           2.00 -> 2.01  Added support for owError library.
-//
-
-#include <stdio.h>
-#include <windows.h>
-#include "ownet.h"
-
-// external function prototypes
-extern long  far pascal TMExtendedStartSession(short, short, void far *);
-extern short far pascal TMEndSession(long);
-extern short far pascal TMClose(long);
-extern short far pascal TMSetup(long);
-extern short far pascal TMReadDefaultPort(short far *, short far *);
-
-short PortNum=1,PortType=2;
-long  SessionHandle[MAX_PORTNUM];
-SMALLINT handle_init = FALSE;
-
-//---------------------------------------------------------------------------
-// Attempt to acquire a 1-Wire net using a com port and a DS2480 based
-// adapter.
-//
-// 'port_zstr'     - zero terminated port name.  For this platform
-//                   use format {port number, port type}.
-//
-// Returns: port number and -1 if not successful in setting up the port.
-//
-int owAcquireEx(char *port_zstr)
-{
-   int portnum;
-   int string_counter, counter, i, lenmax;
-   char portnum_str[15];
-   char porttype_str[15];
-   void *tmex_options = NULL;
-
-   if(!handle_init)
-   {
-      for(i=0; i<MAX_PORTNUM; i++)
-         SessionHandle[i] = 0;
-      handle_init = TRUE;
-   }
-
-   // check to find first available handle slot
-   for(portnum = 0; portnum<MAX_PORTNUM; portnum++)
-   {
-      if(!SessionHandle[portnum])
-         break;
-   }
-   OWASSERT( portnum<MAX_PORTNUM, OWERROR_PORTNUM_ERROR, -1 );
-
-   // convert the string in port_zstr to be the port number and port type
-   if(port_zstr)
-   {
-      lenmax = strlen(port_zstr);
-      if (lenmax > 12)
-         lenmax = 12;
-      string_counter = 1;
-      counter = 0;
-      do
-      {
-         portnum_str[counter] = port_zstr[string_counter];
-
-         counter++;
-         string_counter++;
-      }
-      while((port_zstr[string_counter] != ',') && (string_counter <= lenmax));
-
-      portnum_str[counter] = '\0';
-
-      string_counter++;
-      counter = 0;
-
-      do
-      {
-         porttype_str[counter] = port_zstr[string_counter];
-
-         counter++;
-         string_counter++;
-      }
-      while((port_zstr[string_counter] != '}') && (string_counter <= lenmax));
-
-      porttype_str[counter] = '\0';
-
-      PortNum = atoi(portnum_str);
-      PortType = atoi(porttype_str);
-   }
-
-   // open a session
-   SessionHandle[portnum] = TMExtendedStartSession(PortNum,PortType,tmex_options);
-
-   // check the session handle
-   if (SessionHandle[portnum] <= 0)
-   {
-      OWERROR(OWERROR_GET_SYSTEM_RESOURCE_FAILED);
-      SessionHandle[portnum] = 0;
-      return -1;
-   }
-
-   // setup the port
-   if (TMSetup(SessionHandle[portnum]) != 1)
-   {
-      TMClose(SessionHandle[portnum]);
-      TMEndSession(SessionHandle[portnum]);
-      OWERROR(OWERROR_SYSTEM_RESOURCE_INIT_FAILED);
-      SessionHandle[portnum] = 0;
-      return -1;
-   }
-
-   return portnum;
-}
-
-//---------------------------------------------------------------------------
-// Attempt to acquire a 1-Wire net using a com port and a DS2480 based
-// adapter.
-//
-// 'portnum'    - number 0 to MAX_PORTNUM-1.  This number is provided to
-//                indicate the symbolic port number.
-// 'port_zstr'  - zero terminated port name.  For this platform
-//                use format COMX where X is the port number.
-//
-// Returns: TRUE - success, COM port opened
-//
-SMALLINT owAcquire(int portnum, char *port_zstr)
-{
-   int i;
-
-   if(!handle_init)
-   {
-      for(i=0; i<MAX_PORTNUM; i++)
-         SessionHandle[i] = 0;
-      handle_init = TRUE;
-   }
-
-   OWASSERT( portnum<MAX_PORTNUM && portnum>=0 && !SessionHandle[portnum],
-             OWERROR_PORTNUM_ERROR, FALSE );
-
-   // read the default PortNum and PortType
-   TMReadDefaultPort(&PortNum,&PortType);
-
-   // convert the string in port_zstr to be the port number
-   PortNum = atoi(port_zstr);
-
-   // open a session
-   SessionHandle[portnum] = TMExtendedStartSession(PortNum,PortType,NULL);
-
-   // check the session handle
-   if (SessionHandle[portnum] <= 0)
-   {
-      OWERROR(OWERROR_GET_SYSTEM_RESOURCE_FAILED);
-      SessionHandle[portnum] = 0;
-      return FALSE;
-   }
-
-   // setup the port
-   if (TMSetup(SessionHandle[portnum]) != 1)
-   {
-      TMClose(SessionHandle[portnum]);
-      TMEndSession(SessionHandle[portnum]);
-      OWERROR(OWERROR_SYSTEM_RESOURCE_INIT_FAILED);
-      SessionHandle[portnum] = 0;
-      return FALSE;
-   }
-
-   return TRUE;
-}
-
-//---------------------------------------------------------------------------
-// Release the previously acquired a 1-Wire net.
-//
-// 'portnum'    - number 0 to MAX_PORTNUM-1.  This number is provided to
-//                indicate the symbolic port number.
-//
-void owRelease(int portnum)
-{
-   TMClose(SessionHandle[portnum]);
-   TMEndSession(SessionHandle[portnum]);
-   SessionHandle[portnum] = 0;
-}
-
+//---------------------------------------------------------------------------\r
+// Copyright (C) 2001 Dallas Semiconductor Corporation, All Rights Reserved.\r
+//\r
+// Permission is hereby granted, free of charge, to any person obtaining a\r
+// copy of this software and associated documentation files (the "Software"),\r
+// to deal in the Software without restriction, including without limitation\r
+// the rights to use, copy, modify, merge, publish, distribute, sublicense,\r
+// and/or sell copies of the Software, and to permit persons to whom the\r
+// Software is furnished to do so, subject to the following conditions:\r
+//\r
+// The above copyright notice and this permission notice shall be included\r
+// in all copies or substantial portions of the Software.\r
+//\r
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS\r
+// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r
+// MERCHANTABILITY,  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\r
+// IN NO EVENT SHALL DALLAS SEMICONDUCTOR BE LIABLE FOR ANY CLAIM, DAMAGES\r
+// OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\r
+// ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\r
+// OTHER DEALINGS IN THE SOFTWARE.\r
+//\r
+// Except as contained in this notice, the name of Dallas Semiconductor\r
+// shall not be used except as stated in the Dallas Semiconductor\r
+// Branding Policy.\r
+//---------------------------------------------------------------------------\r
+//\r
+//  owsestmx.c - Acquire and release a Session on the 1-Wire Net using TMEX.\r
+//               (Requires TMEX 3.11 or newer)\r
+//\r
+//  Version: 2.01\r
+//\r
+//  History: 1.03 -> 2.00  Changed 'MLan' to 'ow'. Added support for\r
+//                         multiple ports.\r
+//           2.00 -> 2.01  Added support for owError library.\r
+//\r
+\r
+#include <stdio.h>\r
+#include <windows.h>\r
+#include "ownet.h"\r
+\r
+// external function prototypes\r
+extern long  far pascal TMExtendedStartSession(short, short, void far *);\r
+extern short far pascal TMEndSession(long);\r
+extern short far pascal TMClose(long);\r
+extern short far pascal TMSetup(long);\r
+extern short far pascal TMReadDefaultPort(short far *, short far *);\r
+\r
+short PortNum=1,PortType=2;\r
+long  SessionHandle[MAX_PORTNUM];\r
+SMALLINT handle_init = FALSE;\r
+\r
+//---------------------------------------------------------------------------\r
+// Attempt to acquire a 1-Wire net using a com port and a DS2480 based\r
+// adapter.\r
+//\r
+// 'port_zstr'     - zero terminated port name.  For this platform\r
+//                   use format {port number, port type}.\r
+//\r
+// Returns: port number and -1 if not successful in setting up the port.\r
+//\r
+int owAcquireEx(char *port_zstr)\r
+{\r
+   int portnum;\r
+   int string_counter, counter, i, lenmax;\r
+   char portnum_str[15];\r
+   char porttype_str[15];\r
+   void *tmex_options = NULL;\r
+\r
+   if(!handle_init)\r
+   {\r
+      for(i=0; i<MAX_PORTNUM; i++)\r
+         SessionHandle[i] = 0;\r
+      handle_init = TRUE;\r
+   }\r
+\r
+   // check to find first available handle slot\r
+   for(portnum = 0; portnum<MAX_PORTNUM; portnum++)\r
+   {\r
+      if(!SessionHandle[portnum])\r
+         break;\r
+   }\r
+   OWASSERT( portnum<MAX_PORTNUM, OWERROR_PORTNUM_ERROR, -1 );\r
+\r
+   // convert the string in port_zstr to be the port number and port type\r
+   if(port_zstr)\r
+   {\r
+      lenmax = strlen(port_zstr);\r
+      if (lenmax > 12)\r
+         lenmax = 12;\r
+      string_counter = 1;\r
+      counter = 0;\r
+      do\r
+      {\r
+         portnum_str[counter] = port_zstr[string_counter];\r
+\r
+         counter++;\r
+         string_counter++;\r
+      }\r
+      while((port_zstr[string_counter] != ',') && (string_counter <= lenmax));\r
+\r
+      portnum_str[counter] = '\0';\r
+\r
+      string_counter++;\r
+      counter = 0;\r
+\r
+      do\r
+      {\r
+         porttype_str[counter] = port_zstr[string_counter];\r
+\r
+         counter++;\r
+         string_counter++;\r
+      }\r
+      while((port_zstr[string_counter] != '}') && (string_counter <= lenmax));\r
+\r
+      porttype_str[counter] = '\0';\r
+\r
+      PortNum = atoi(portnum_str);\r
+      PortType = atoi(porttype_str);\r
+   }\r
+\r
+   // open a session\r
+   SessionHandle[portnum] = TMExtendedStartSession(PortNum,PortType,tmex_options);\r
+\r
+   // check the session handle\r
+   if (SessionHandle[portnum] <= 0)\r
+   {\r
+      OWERROR(OWERROR_GET_SYSTEM_RESOURCE_FAILED);\r
+      SessionHandle[portnum] = 0;\r
+      return -1;\r
+   }\r
+\r
+   // setup the port\r
+   if (TMSetup(SessionHandle[portnum]) != 1)\r
+   {\r
+      TMClose(SessionHandle[portnum]);\r
+      TMEndSession(SessionHandle[portnum]);\r
+      OWERROR(OWERROR_SYSTEM_RESOURCE_INIT_FAILED);\r
+      SessionHandle[portnum] = 0;\r
+      return -1;\r
+   }\r
+\r
+   return portnum;\r
+}\r
+\r
+//---------------------------------------------------------------------------\r
+// Attempt to acquire a 1-Wire net using a com port and a DS2480 based\r
+// adapter.\r
+//\r
+// 'portnum'    - number 0 to MAX_PORTNUM-1.  This number is provided to\r
+//                indicate the symbolic port number.\r
+// 'port_zstr'  - zero terminated port name.  For this platform\r
+//                use format COMX where X is the port number.\r
+//\r
+// Returns: TRUE - success, COM port opened\r
+//\r
+SMALLINT owAcquire(int portnum, char *port_zstr)\r
+{\r
+   int i;\r
+\r
+   if(!handle_init)\r
+   {\r
+      for(i=0; i<MAX_PORTNUM; i++)\r
+         SessionHandle[i] = 0;\r
+      handle_init = TRUE;\r
+   }\r
+\r
+   OWASSERT( portnum<MAX_PORTNUM && portnum>=0 && !SessionHandle[portnum],\r
+             OWERROR_PORTNUM_ERROR, FALSE );\r
+\r
+   // read the default PortNum and PortType\r
+   TMReadDefaultPort(&PortNum,&PortType);\r
+\r
+   // convert the string in port_zstr to be the port number\r
+   PortNum = atoi(port_zstr);\r
+\r
+   // open a session\r
+   SessionHandle[portnum] = TMExtendedStartSession(PortNum,PortType,NULL);\r
+\r
+   // check the session handle\r
+   if (SessionHandle[portnum] <= 0)\r
+   {\r
+      OWERROR(OWERROR_GET_SYSTEM_RESOURCE_FAILED);\r
+      SessionHandle[portnum] = 0;\r
+      return FALSE;\r
+   }\r
+\r
+   // setup the port\r
+   if (TMSetup(SessionHandle[portnum]) != 1)\r
+   {\r
+      TMClose(SessionHandle[portnum]);\r
+      TMEndSession(SessionHandle[portnum]);\r
+      OWERROR(OWERROR_SYSTEM_RESOURCE_INIT_FAILED);\r
+      SessionHandle[portnum] = 0;\r
+      return FALSE;\r
+   }\r
+\r
+   return TRUE;\r
+}\r
+\r
+//---------------------------------------------------------------------------\r
+// Release the previously acquired a 1-Wire net.\r
+//\r
+// 'portnum'    - number 0 to MAX_PORTNUM-1.  This number is provided to\r
+//                indicate the symbolic port number.\r
+//\r
+void owRelease(int portnum)\r
+{\r
+   TMClose(SessionHandle[portnum]);\r
+   TMEndSession(SessionHandle[portnum]);\r
+   SessionHandle[portnum] = 0;\r
+}\r
+\r