int main(int argc, char* argv[]) { if ((argc < 2) || (argc > 4)) { fprintf(stderr, "Usage: (depends on the parameters)\n"); fprintf(stderr, " %s type filename sha1.md5.len\n", argv[0]); fprintf(stderr, " echo 'sha1.md5.len filename' | %s type\n", argv[0]); fprintf(stderr, " echo '<xml from ununpack>...</xml>' | %s typesource type\n", argv[0]); fprintf(stderr, " type = repository for storing files\n"); fprintf(stderr, " typesource = repository for storing source files (XML only)\n"); exit(-1); } switch (argc) { case 2: /* pairs from stdin */ ProcessPairs(stdin, argv[1]); break; case 3: /* pairs from XML */ ProcessXML(stdin, argv[1], argv[2]); break; case 4: /* pairs from command-line */ CopyFile(argv[2], argv[1], argv[3]); break; } printf("Total Imported: %ld\n", TotalImported); printf("Total Duplicates: %ld\n", TotalDuplicate); printf("Total Errors: %ld\n", TotalError); if (TotalError > 0) return (1); return (0); } /* main() */
String NexaDecoder::Decode(bool* signalValues) { _decodedValues = ""; bool isValid = ProcessPairs(signalValues); if (!isValid) { return "CHECKSUM ERROR of: " + String(_extractedValues); } AddDeviceId(); AddSettingValue("AllOff", 32, 5); AddSettingValue("SetOn", 16, 4); AddSettingValue("Group", 12, 2); AddSettingValue("ButtonId", 3, 0); return _decodedValues; }