Diff for /libaitpelco/src/aitpelco.c between versions 1.1.1.1 and 1.1.1.1.2.3

version 1.1.1.1, 2010/01/22 00:57:32 version 1.1.1.1.2.3, 2010/03/12 15:30:46
Line 108  inline void pelcoClose(void * __restrict p) Line 108  inline void pelcoClose(void * __restrict p)
                 free(p);                  free(p);
 }  }
   
   /*
    * pelcoLoad() Load packet from input buffer
    * @buffer = Pelco packet from input buffer
    * return: NULL error, !=NULL ok, allocated memory for packet
    */
   inline void *pelcoLoad(u_char *buffer)
   {
           pelco_d_t *pd;
           pelco_p_t *pp;
           void *p = NULL;
   
           switch (pelco_GetVersion(buffer)) {
                   case 'd':
                           if (pelco_GetCamNo(buffer) < FIRST_CAM_D) {
                                   pelcoSetErr(ENOEXEC, "Error:: unsupported camera number %d!\n", 
                                                   pelco_GetCamNo(buffer));
                                   return NULL;
                           }
   
                           pd = malloc(sizeof(pelco_d_t));
                           if (!pd) {
                                   SETERR;
                                   return NULL;
                           } else
                                   memcpy(pd, buffer, sizeof(pelco_d_t));
   
                           p = pd;
                           break;
                   case 'p':
                           pp = malloc(sizeof(pelco_p_t));
                           if (!pp) {
                                   SETERR;
                                   return NULL;
                           } else
                                   memcpy(pp, buffer, sizeof(pelco_p_t));
   
                           p = pp;
                           break;
                   default:
                           pelcoSetErr(ENOEXEC, "Error:: unsupported Pelco protocol version!\n");
           }
   
           return p;
   }
   
 /*  /*
  * pelcoAddCmdData() Add commands and datas for already opened packet   * pelcoAddCmdData() Add commands and datas for already opened packet
  * @p = Input Packet structure   * @p = Input Packet structure
Line 159  inline u_char pelcoAddCmdData(void * __restrict p, u_c Line 203  inline u_char pelcoAddCmdData(void * __restrict p, u_c
         }          }
   
         return ret;          return ret;
   }
   
   /*
    * pelcoGetCmdData() Get from packet commands and datas with verify packet
    * @p = Input Packet structure
    * @cmd[2] = Output Commands 1 & 2
    * @data[2] = Output Data for commands 1 & 2
    * return: 'd' - PelcoD, 'p' - PelcoP, 0 - unknown or bad packet
    */
   inline u_char pelcoGetCmdData(void * __restrict p, u_char * __restrict cmd, u_char * __restrict data)
   {
           return pelco_GetCamCmdData(p, NULL, cmd, data);
   }
   
   /*
    * pelcoChkSum() Check ot Correct check sum in packet
    * @p = Input Packet structure
    * @correct = Calculate new check sum if incorrect !=0, if ==0 only check
    * return: 0xFF - bad packet, 1 invalid check sum, 0 check sum is correct.
    */
   inline u_char pelcoChkSum(void * __restrict p, u_char correct)
   {
           u_char sum, *ptr = p;
           pelco_d_t *pd = (pelco_d_t *) p;
           pelco_p_t *pp = (pelco_p_t *) p;
   
           if (!p) {
                   pelcoSetErr(EINVAL, "Error:: invalid argument!\n");
                   return 0xFF;
           }
   
           switch (ptr[0]) {
                   case VER_D_SYNC:
                           if (ptr[1] < FIRST_CAM_D) {
                                   pelcoSetErr(ENOEXEC, "Error:: unsupported camera number %d!\n", ptr[1]);
                                   return 0xFF;
                           }
   
                           sum = crcPelco('d', p);
                           if (correct)
                                   pd->d_crc = sum;
                           break;
                   case VER_P_STX:
                           if (VER_P_ETX != ptr[6]) {
                                   pelcoSetErr(ENOEXEC, "Error:: Broken Pelco P packet!\n");
                                   return 0xFF;
                           }
   
                           sum = crcPelco('p', p);
                           if (correct)
                                   pp->p_crc = sum;
                           break;
                   default:
                           pelcoSetErr(ENOEXEC, "Error:: Invalid protocol!\n");
                           return 0xFF;
           }
   
           return sum;
 }  }

Removed from v.1.1.1.1  
changed lines
  Added in v.1.1.1.1.2.3


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