Diff for /libaitpelco/src/aitpelco.c between versions 1.1.1.1.2.2 and 1.1.1.1.2.4

version 1.1.1.1.2.2, 2010/03/12 14:57:18 version 1.1.1.1.2.4, 2010/03/17 13:34:34
Line 60  inline void *pelcoOpen(u_char pelcoVer, u_char camNo) Line 60  inline void *pelcoOpen(u_char pelcoVer, u_char camNo)
                 case 'D':                  case 'D':
                 case 'd':                  case 'd':
                         if (camNo < FIRST_CAM_D) {                          if (camNo < FIRST_CAM_D) {
                                pelcoSetErr(ENOEXEC, "Error:: unsupported camera number %d!\n", camNo);                                pelcoSetErr(ENOEXEC, "unsupported camera number %d!\n", camNo);
                                 return NULL;                                  return NULL;
                         }                          }
   
Line 92  inline void *pelcoOpen(u_char pelcoVer, u_char camNo) Line 92  inline void *pelcoOpen(u_char pelcoVer, u_char camNo)
                         p = pp;                          p = pp;
                         break;                          break;
                 default:                  default:
                        pelcoSetErr(ENOEXEC, "Error:: unsupported Pelco protocol version!\n");                        pelcoSetErr(ENOEXEC, "unsupported Pelco protocol version!\n");
         }          }
   
         return p;          return p;
Line 122  inline void *pelcoLoad(u_char *buffer) Line 122  inline void *pelcoLoad(u_char *buffer)
         switch (pelco_GetVersion(buffer)) {          switch (pelco_GetVersion(buffer)) {
                 case 'd':                  case 'd':
                         if (pelco_GetCamNo(buffer) < FIRST_CAM_D) {                          if (pelco_GetCamNo(buffer) < FIRST_CAM_D) {
                                pelcoSetErr(ENOEXEC, "Error:: unsupported camera number %d!\n",                                 pelcoSetErr(ENOEXEC, "unsupported camera number %d!\n", 
                                                 pelco_GetCamNo(buffer));                                                  pelco_GetCamNo(buffer));
                                 return NULL;                                  return NULL;
                         }                          }
Line 147  inline void *pelcoLoad(u_char *buffer) Line 147  inline void *pelcoLoad(u_char *buffer)
                         p = pp;                          p = pp;
                         break;                          break;
                 default:                  default:
                        pelcoSetErr(ENOEXEC, "Error:: unsupported Pelco protocol version!\n");                        pelcoSetErr(ENOEXEC, "unsupported Pelco protocol version!\n");
         }          }
   
         return p;          return p;
Line 168  inline u_char pelcoAddCmdData(void * __restrict p, u_c Line 168  inline u_char pelcoAddCmdData(void * __restrict p, u_c
         u_char *ptr = p;          u_char *ptr = p;
   
         if (!p) {          if (!p) {
                pelcoSetErr(EINVAL, "Error:: invalid argument!\n");                pelcoSetErr(EINVAL, "invalid argument!\n");
                 return 0xFF;                  return 0xFF;
         }          }
   
         switch (ptr[0]) {          switch (ptr[0]) {
                 case VER_D_SYNC:                  case VER_D_SYNC:
                         if (ptr[1] < FIRST_CAM_D) {                          if (ptr[1] < FIRST_CAM_D) {
                                pelcoSetErr(ENOEXEC, "Error:: unsupported camera number %d!\n", ptr[1]);                                pelcoSetErr(ENOEXEC, "unsupported camera number %d!\n", ptr[1]);
                                 return 0xFF;                                  return 0xFF;
                         }                          }
   
Line 187  inline u_char pelcoAddCmdData(void * __restrict p, u_c Line 187  inline u_char pelcoAddCmdData(void * __restrict p, u_c
                         break;                          break;
                 case VER_P_STX:                  case VER_P_STX:
                         if (VER_P_ETX != ptr[6]) {                          if (VER_P_ETX != ptr[6]) {
                                pelcoSetErr(ENOEXEC, "Error:: Broken Pelco P packet!\n");                                pelcoSetErr(ENOEXEC, "Broken Pelco P packet!\n");
                                 return 0xFF;                                  return 0xFF;
                         }                          }
   
Line 198  inline u_char pelcoAddCmdData(void * __restrict p, u_c Line 198  inline u_char pelcoAddCmdData(void * __restrict p, u_c
                         pp->p_crc = crcPelco('p', p);                          pp->p_crc = crcPelco('p', p);
                         break;                          break;
                 default:                  default:
                        pelcoSetErr(ENOEXEC, "Error:: Invalid protocol!\n");                        pelcoSetErr(ENOEXEC, "Invalid protocol!\n");
                         return 0xFF;                          return 0xFF;
         }          }
   
Line 215  inline u_char pelcoAddCmdData(void * __restrict p, u_c Line 215  inline u_char pelcoAddCmdData(void * __restrict p, u_c
 inline u_char pelcoGetCmdData(void * __restrict p, u_char * __restrict cmd, u_char * __restrict data)  inline u_char pelcoGetCmdData(void * __restrict p, u_char * __restrict cmd, u_char * __restrict data)
 {  {
         return pelco_GetCamCmdData(p, NULL, cmd, 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, "invalid argument!\n");
                   return 0xFF;
           }
   
           switch (ptr[0]) {
                   case VER_D_SYNC:
                           if (ptr[1] < FIRST_CAM_D) {
                                   pelcoSetErr(ENOEXEC, "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, "Broken Pelco P packet!\n");
                                   return 0xFF;
                           }
   
                           sum = crcPelco('p', p);
                           if (correct)
                                   pp->p_crc = sum;
                           break;
                   default:
                           pelcoSetErr(ENOEXEC, "Invalid protocol!\n");
                           return 0xFF;
           }
   
           return sum;
 }  }

Removed from v.1.1.1.1.2.2  
changed lines
  Added in v.1.1.1.1.2.4


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