Diff for /libaitpelco/src/get.c between versions 1.1 and 1.2

version 1.1, 2010/01/22 00:57:32 version 1.2, 2011/05/10 20:26:08
Line 5 Line 5
 * $Author$  * $Author$
 * $Id$  * $Id$
 *  *
*************************************************************************/**************************************************************************
 The ELWIX and AITNET software is distributed under the following
 terms:
 
 All of the documentation and software included in the ELWIX and AITNET
 Releases is copyrighted by ELWIX - Sofia/Bulgaria <info@elwix.org>
 
 Copyright 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
         by Michael Pounov <misho@elwix.org>.  All rights reserved.
 
 Redistribution and use in source and binary forms, with or without
 modification, are permitted provided that the following conditions
 are met:
 1. Redistributions of source code must retain the above copyright
    notice, this list of conditions and the following disclaimer.
 2. Redistributions in binary form must reproduce the above copyright
    notice, this list of conditions and the following disclaimer in the
    documentation and/or other materials provided with the distribution.
 3. All advertising materials mentioning features or use of this software
    must display the following acknowledgement:
 This product includes software developed by Michael Pounov <misho@elwix.org>
 ELWIX - Embedded LightWeight unIX and its contributors.
 4. Neither the name of AITNET nor the names of its contributors
    may be used to endorse or promote products derived from this software
    without specific prior written permission.
 
 THIS SOFTWARE IS PROVIDED BY AITNET AND CONTRIBUTORS ``AS IS'' AND
 ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
 FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
 OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 SUCH DAMAGE.
 */
 #include "global.h"  #include "global.h"
   
   
Line 14 Line 51
  * @p = Packet structure   * @p = Packet structure
  * return: 'd' - PelcoD, 'p' - PelcoP, 0 - unknown or bad packet   * return: 'd' - PelcoD, 'p' - PelcoP, 0 - unknown or bad packet
  */   */
inline u_char pelco_GetVersion(void * __restrict p)inline u_char
 pelco_GetVersion(void * __restrict p)
 {  {
         u_char *ptr = (u_char *) p;          u_char *ptr = (u_char *) p;
   
        if (!p) {        if (!p || !*ptr) {
                pelcoSetErr(EINVAL, "Error:: invalid argument!\n");                pelcoSetErr(EINVAL, "invalid argument!\n");
                 return 0;                  return 0;
         }          }
   
Line 29  inline u_char pelco_GetVersion(void * __restrict p) Line 67  inline u_char pelco_GetVersion(void * __restrict p)
                 case VER_P_STX:                  case VER_P_STX:
                         if (VER_P_ETX == ptr[6])                          if (VER_P_ETX == ptr[6])
                                 return 'p';                                  return 'p';
                        pelcoSetErr(ENOEXEC, "Error:: broken Pelco P packet ...\n");                        pelcoSetErr(ENOEXEC, "broken Pelco P packet ...\n");
                         break;                          break;
                 default:                  default:
                        pelcoSetErr(ENOEXEC, "Error:: unsupported Pelco protocol version!\n");                        pelcoSetErr(ENOEXEC, "unsupported Pelco protocol version!\n");
         }          }
   
         return 0;          return 0;
Line 44  inline u_char pelco_GetVersion(void * __restrict p) Line 82  inline u_char pelco_GetVersion(void * __restrict p)
  * return: 0xFF and pelco_GetErrno() == ENOEXEC - error,    * return: 0xFF and pelco_GetErrno() == ENOEXEC - error, 
         any number is camera address          any number is camera address
  */   */
inline u_char pelco_GetCamNo(void * __restrict p)inline u_char
 pelco_GetCamNo(void * __restrict p)
 {  {
         u_char ver;          u_char ver;
         u_char *ptr = (u_char *) p;          u_char *ptr = (u_char *) p;
   
        if (!p) {        if (!p || !*ptr) {
                pelcoSetErr(EINVAL, "Error:: invalid argument!\n");                pelcoSetErr(EINVAL, "invalid argument!\n");
                 return 0;                  return 0;
         }          }
   
Line 60  inline u_char pelco_GetCamNo(void * __restrict p) Line 99  inline u_char pelco_GetCamNo(void * __restrict p)
                         if (crcPelco(ver, p) == ptr[6])                          if (crcPelco(ver, p) == ptr[6])
                                 return ptr[1];                                  return ptr[1];
   
                        pelcoSetErr(ENOEXEC, "Error:: broken Pelco D packet!!!\n");                        pelcoSetErr(ENOEXEC, "broken Pelco D packet!!!\n");
                         break;                          break;
                 case 'p':                  case 'p':
                         if (crcPelco(ver, p) == ptr[7])                          if (crcPelco(ver, p) == ptr[7])
                                 return ptr[1] + 1;                                  return ptr[1] + 1;
   
                        pelcoSetErr(ENOEXEC, "Error:: broken Pelco P packet!!!\n");                        pelcoSetErr(ENOEXEC, "broken Pelco P packet!!!\n");
                         break;                          break;
         }          }
   
Line 81  inline u_char pelco_GetCamNo(void * __restrict p) Line 120  inline u_char pelco_GetCamNo(void * __restrict p)
  * @data[2] = Output Data for commands 1 & 2   * @data[2] = Output Data for commands 1 & 2
  * return: 'd' - PelcoD, 'p' - PelcoP, 0 - unknown or bad packet   * return: 'd' - PelcoD, 'p' - PelcoP, 0 - unknown or bad packet
  */   */
inline u_char pelco_GetCamCmdData(void * __restrict p, u_char * __restrict cam, inline u_char
 pelco_GetCamCmdData(void * __restrict p, u_char * __restrict cam, 
                 u_char * __restrict cmd, u_char * __restrict data)                  u_char * __restrict cmd, u_char * __restrict data)
 {  {
         u_char ret;          u_char ret;
         u_char *ptr = (u_char *) p;          u_char *ptr = (u_char *) p;
   
        if (!p) {        if (!p || !*ptr) {
                pelcoSetErr(EINVAL, "Error:: invalid argument!\n");                pelcoSetErr(EINVAL, "invalid argument!\n");
                 return 0;                  return 0;
         }          }
   
Line 96  inline u_char pelco_GetCamCmdData(void * __restrict p, Line 136  inline u_char pelco_GetCamCmdData(void * __restrict p,
         switch (ret) {          switch (ret) {
                 case 'd':                  case 'd':
                         if (crcPelco(ret, p) != ptr[6]) {                          if (crcPelco(ret, p) != ptr[6]) {
                                pelcoSetErr(ENOEXEC, "Error:: broken Pelco D packet!!!\n");                                pelcoSetErr(ENOEXEC, "broken Pelco D packet!!!\n");
                                 return 0;                                  return 0;
                         }                          }
   
Line 105  inline u_char pelco_GetCamCmdData(void * __restrict p, Line 145  inline u_char pelco_GetCamCmdData(void * __restrict p,
                         break;                          break;
                 case 'p':                  case 'p':
                         if (crcPelco(ret, p) != ptr[7]) {                          if (crcPelco(ret, p) != ptr[7]) {
                                pelcoSetErr(ENOEXEC, "Error:: broken Pelco P packet!!!\n");                                pelcoSetErr(ENOEXEC, "broken Pelco P packet!!!\n");
                                 return 0;                                  return 0;
                         }                          }
   
Line 128  inline u_char pelco_GetCamCmdData(void * __restrict p, Line 168  inline u_char pelco_GetCamCmdData(void * __restrict p,
  * @cmd2 = Output typecasted commands 2   * @cmd2 = Output typecasted commands 2
  * return: 0xFF - error, !=0 return number arguments   * return: 0xFF - error, !=0 return number arguments
  */   */
inline u_char pelco_D_toCmd(u_char * __restrict cmd, inline u_char
                struct bitD_Cmd1 * __restrict cmd1, struct bitD_Cmd2 * __restrict cmd2)pelco_D_toCmd(u_char * __restrict cmd, struct bitD_Cmd1 * __restrict cmd1, 
                 struct bitD_Cmd2 * __restrict cmd2)
 {  {
         u_char ret = 0;          u_char ret = 0;
   
         if (!cmd) {          if (!cmd) {
                pelcoSetErr(EINVAL, "Error:: invalid argument!\n");                pelcoSetErr(EINVAL, "invalid argument!\n");
                 return 0xFF;                  return 0xFF;
         }          }
   
Line 157  inline u_char pelco_D_toCmd(u_char * __restrict cmd,  Line 198  inline u_char pelco_D_toCmd(u_char * __restrict cmd, 
  * @cmd2 = Output typecasted commands 2   * @cmd2 = Output typecasted commands 2
  * return: 0xFF - error, !=0 return number arguments   * return: 0xFF - error, !=0 return number arguments
  */   */
inline u_char pelco_P_toCmd(u_char * __restrict cmd, inline u_char
                struct bitP_Cmd1 * __restrict cmd1, struct bitP_Cmd2 * __restrict cmd2)pelco_P_toCmd(u_char * __restrict cmd, struct bitP_Cmd1 * __restrict cmd1, 
                 struct bitP_Cmd2 * __restrict cmd2)
 {  {
         u_char ret = 0;          u_char ret = 0;
   
         if (!cmd) {          if (!cmd) {
                pelcoSetErr(EINVAL, "Error:: invalid argument!\n");                pelcoSetErr(EINVAL, "invalid argument!\n");
                 return 0xFF;                  return 0xFF;
         }          }
   

Removed from v.1.1  
changed lines
  Added in v.1.2


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>