Index: trunk/ippTools/src/camtool.c
===================================================================
--- trunk/ippTools/src/camtool.c	(revision 12237)
+++ trunk/ippTools/src/camtool.c	(revision 13580)
@@ -23,4 +23,5 @@
 
 #include <stdlib.h>
+#include <stdint.h>
 #include <inttypes.h>
 
@@ -434,4 +435,14 @@
     }
 
+    psString chip_id = psMetadataLookupStr(&status, config->args, "-chip_id");
+    if (!status) {
+        psError(PS_ERR_UNKNOWN, false, "failed to lookup value for -chip_id");
+        return false;
+    }
+    if (!chip_id) {
+        psError(PS_ERR_UNKNOWN, true, "-chip_id is required");
+        return false;
+    }
+
     psString uri = psMetadataLookupStr(&status, config->args, "-uri");
     if (!status) {
@@ -520,5 +531,5 @@
 
     // default
-    psS8 code = psMetadataLookupS8(&status, config->args, "-code");
+    psS16 code = psMetadataLookupS16(&status, config->args, "-code");
     if (!status) {
         psError(PS_ERR_UNKNOWN, false, "failed to lookup value for -code");
@@ -714,7 +725,11 @@
 
     bool status = false;
-    psS8 code = psMetadataLookupS8(&status, config->args, "-code");
+    psS16 code = psMetadataLookupS16(&status, config->args, "-code");
     if (!status) {
         psError(PS_ERR_UNKNOWN, false, "failed to lookup value for -code");
+        return false;
+    }
+    if (code == INT16_MAX) {
+        psError(PS_ERR_UNKNOWN, true, "-code is required");
         return false;
     }
