{"id":48550160,"url":"https://github.com/cslrfid/cs710s-ios-objc-app","last_synced_at":"2026-04-08T08:04:15.212Z","repository":{"id":202942224,"uuid":"583540772","full_name":"cslrfid/CS710S-iOS-ObjC-App","owner":"cslrfid","description":null,"archived":false,"fork":false,"pushed_at":"2025-11-14T02:10:06.000Z","size":7557,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-11-14T03:19:23.608Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Objective-C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cslrfid.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2022-12-30T04:49:30.000Z","updated_at":"2025-11-14T01:49:12.000Z","dependencies_parsed_at":null,"dependency_job_id":"8ddab846-b275-431e-919d-02a1124b7955","html_url":"https://github.com/cslrfid/CS710S-iOS-ObjC-App","commit_stats":null,"previous_names":["cslrfid/cs710s-ios-objc-app"],"tags_count":18,"template":false,"template_full_name":null,"purl":"pkg:github/cslrfid/CS710S-iOS-ObjC-App","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cslrfid%2FCS710S-iOS-ObjC-App","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cslrfid%2FCS710S-iOS-ObjC-App/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cslrfid%2FCS710S-iOS-ObjC-App/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cslrfid%2FCS710S-iOS-ObjC-App/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cslrfid","download_url":"https://codeload.github.com/cslrfid/CS710S-iOS-ObjC-App/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cslrfid%2FCS710S-iOS-ObjC-App/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31545909,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-07T16:28:08.000Z","status":"online","status_checked_at":"2026-04-08T02:00:06.127Z","response_time":54,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-04-08T08:04:00.359Z","updated_at":"2026-04-08T08:04:15.207Z","avatar_url":"https://github.com/cslrfid.png","language":"Objective-C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# CS710S-iOS-ObjC-App\n\nLibrary and demo app for Convergence Systems Limited CS710S UHF RFID handheld reader written in Objective-C.\n\n## Current Version\n\n**Version:** 2.0 (Build 717)\n**Last Updated:** November 2025\n\n## Overview\n\nThe CS710S RFID Demo App is a comprehensive iOS application demonstrating the capabilities of the CSL CS710S UHF RFID handheld reader. The app provides a full-featured interface for RFID tag inventory, reading, writing, and advanced tag operations through Bluetooth Low Energy (BLE) communication.\n\n## Development Environment\n\n- **Xcode:** 14 or later\n- **iOS Target:** 13.0+\n- **Language:** Objective-C\n- **Architecture:** MVC with Singleton pattern\n- **Device Optimization:** iPhone 8 (4.7\"), functional on all screen sizes\n\n## Dependencies\n\n### CSL-CS710S CocoaPod (v1.11.0)\n\n[CSL-CS710S GitHub Repository](https://github.com/cslrfid/CSL-CS710S)\n\n**Important:** This CocoaPod is currently unpublished. To use it:\n\n1. Clone the repository to the default location on your Mac:\n   ```bash\n   git clone https://github.com/cslrfid/CSL-CS710S.git ~/Documents/GitHub/CSL-CS710S/\n   ```\n\n2. Alternatively, clone to a custom location and update the `Podfile` path:\n   ```ruby\n   pod 'CSL-CS710S', :path =\u003e '/your/custom/path/CSL-CS710S/'\n   ```\n\n3. Install dependencies:\n   ```bash\n   cd CS710S-iOS-ObjC-App\n   pod install\n   ```\n\n4. Open the workspace (not the project):\n   ```bash\n   open CS710iOSClient.xcworkspace\n   ```\n\n## Key Features\n\n### RFID Operations\n- **Inventory Management:** Real-time tag scanning with configurable parameters\n- **Tag Reading:** Read EPC, TID, and user memory banks\n- **Tag Writing:** Write to EPC and user memory\n- **Tag Access Control:** Lock/unlock, kill tags, change access passwords\n- **Tag Search:** Locate specific tags with visual and audio feedback\n- **Multibank Access:** Simultaneous read from multiple memory banks\n\n### Advanced Features\n- **Impinj Authentication:** Secure tag authentication using Impinj Monza cryptographic features\n- **Temperature Sensing:** Read temperature data from temperature-sensing tags\n- **Filters:** Pre-filter and post-filter configuration for selective tag reading\n- **Power Control:** Adjustable RF power levels (0-30 dBm)\n- **Antenna Configuration:** Control individual antenna ports\n\n### Reader Management\n- **BLE Device Discovery:** Automatic scanning and connection to CS710S readers\n- **Reader Configuration:** Frequency, power, session, target settings\n- **Battery Monitoring:** Real-time battery level display\n- **Firmware Information:** View reader model, firmware version, and serial number\n\n## Project Structure\n\n```\nCS710S-iOS-ObjC-App/\n├── CS710iOSClient/\n│   ├── ViewControllers/          # All view controllers\n│   │   ├── CSLHomeVC              # Main home screen\n│   │   ├── CSLInventoryVC         # Tag inventory\n│   │   ├── CSLSettingsVC          # Reader settings\n│   │   ├── CSLTagAccessVC         # Tag read/write operations\n│   │   ├── CSLMultibankAccessVC   # Multibank operations\n│   │   ├── CSLImpinjAuthenticationVC  # Impinj auth\n│   │   └── ...\n│   ├── Assets.xcassets/           # Images and icons\n│   ├── CSLRfidDemoApp.storyboard  # Main UI storyboard\n│   └── Info.plist                 # App configuration\n├── Pods/                          # CocoaPods dependencies\n│   └── CSL-CS710S/               # RFID reader framework\n├── Podfile                        # Dependency configuration\n└── README.md                      # This file\n```\n\n## Core Architecture\n\n### Singleton Pattern\nThe app uses `CSLRfidAppEngine` as a singleton to manage:\n- Reader instance and connection state\n- Settings persistence (NSUserDefaults)\n- Tag data buffers and filtering\n- Reader configuration and information\n\n### Delegate Pattern\nView controllers implement `CSLBleReaderDelegate` to receive:\n- Tag response packets\n- Trigger key state changes\n- Battery level updates\n- Barcode scan data\n\n### Navigation\n- Tab-based navigation for RFID operations (Inventory, Settings, Tag Access, Tag Search)\n- Storyboard-based UI with programmatic navigation for complex flows\n\n## Building the Project\n\n### Prerequisites\n1. Install CocoaPods if not already installed:\n   ```bash\n   sudo gem install cocoapods\n   ```\n\n2. Clone the CSL-CS710S pod repository (see Dependencies section)\n\n### Build Steps\n1. Clone this repository:\n   ```bash\n   git clone https://github.com/cslrfid/CS710S-iOS-ObjC-App.git\n   cd CS710S-iOS-ObjC-App\n   ```\n\n2. Install dependencies:\n   ```bash\n   pod install\n   ```\n\n3. Open the workspace:\n   ```bash\n   open CS710iOSClient.xcworkspace\n   ```\n\n4. Select a target device or simulator\n\n5. Build and run (⌘R)\n\n### Known Build Issues\n\n**User Script Sandboxing:**\nIf you encounter permission errors during build, the project has been configured with `ENABLE_USER_SCRIPT_SANDBOXING=NO` to allow CocoaPods scripts to run properly. This is required for Xcode 14+ with CocoaPods.\n\n**Framework Header Imports:**\nThe CSL-CS710S framework uses angle-bracketed imports (`\u003cCSL_CS710S/Header.h\u003e`) to comply with framework modulemap requirements. If you modify the pod, maintain this format.\n\n## Recent Changes (v2.0)\n\n### Removed Features\n- **MQTT Integration:** All MQTT-related functionality has been removed, including:\n  - MQTT settings page\n  - Temperature upload to MQTT broker\n  - Tag data transmission via MQTT\n  - MQTTClient dependency\n\n### UI Improvements\n- Reorganized More Functions page layout for better accessibility\n- Improved button spacing and alignment in grid layouts\n\n### Bug Fixes\n- Fixed framework header import format for proper module compilation\n- Resolved build issues with user script sandboxing\n- Fixed CocoaPods integration for local pod dependencies\n\n## Configuration\n\n### Reader Settings\nConfigure reader parameters in the Settings page:\n- **Region:** Select regulatory region (FCC, ETSI, etc.)\n- **Power Level:** Adjust RF output power (0-30 dBm)\n- **Session:** Select Gen2 session (S0, S1, S2, S3)\n- **Target:** Choose tag population (A, B, A-\u003eB, B-\u003eA)\n- **Algorithm:** Select inventory algorithm (Dynamic Q, Fixed Q, etc.)\n- **Link Profile:** Configure reader-tag communication parameters\n\n### Filters\n- **Pre-filter:** Filter tags before inventory based on EPC/TID\n- **Post-filter:** Client-side filtering of received tag data\n\n### Tag Access\n- **Access Password:** Set for protected tag operations\n- **Retry Count:** Configure read/write retry attempts\n- **Antenna Selection:** Choose specific antenna ports\n\n## Usage Example\n\n### Basic Inventory Operation\n1. Launch the app\n2. Tap \"Press to Connect\" to discover and connect to a CS710S reader\n3. Once connected, tap \"Inventory\" on the home screen\n4. Press the reader's trigger button or tap \"Start\" in the app\n5. View real-time tag reads in the table view\n6. Tags display: EPC, RSSI, read count, timestamp\n\n### Tag Read/Write\n1. From home screen, tap \"Tag Access\"\n2. Enter the target EPC or scan a tag\n3. Select operation (Read/Write)\n4. Choose memory bank (EPC, TID, User)\n5. Set offset and length\n6. Execute operation\n\n## Bluetooth Permissions\n\nThe app requires Bluetooth permissions configured in `Info.plist`:\n- `NSBluetoothAlwaysUsageDescription`\n- `NSBluetoothPeripheralUsageDescription`\n\nUsers must grant Bluetooth access on first launch.\n\n## Testing\n\n### Tested Configurations\n- **Devices:** iPhone 8, iPhone 12, iPhone 14\n- **iOS Versions:** iOS 13.0 - iOS 17.5\n- **Readers:** CS710S (all firmware versions)\n\n### Simulator Limitations\nThe iOS Simulator cannot access Bluetooth hardware. Testing requires a physical iOS device and CS710S reader.\n\n## Troubleshooting\n\n### Connection Issues\n- Ensure Bluetooth is enabled on the iOS device\n- Verify the CS710S reader is powered on\n- Check that the reader is not connected to another device\n- Try power cycling the reader\n\n### Build Failures\n- Clean build folder: Product → Clean Build Folder (⌘⇧K)\n- Delete derived data: `rm -rf ~/Library/Developer/Xcode/DerivedData`\n- Reinstall pods: `rm -rf Pods/ \u0026\u0026 pod install`\n- Verify CSL-CS710S pod is correctly cloned and accessible\n\n### Runtime Issues\n- Check iOS version compatibility (requires iOS 13.0+)\n- Verify Bluetooth permissions are granted\n- Review Xcode console for error messages\n- Ensure reader firmware is up to date\n\n## Contributing\n\nThis is a demonstration application. For feature requests or bug reports related to:\n- **App issues:** File issues in this repository\n- **Reader SDK issues:** File issues in the [CSL-CS710S repository](https://github.com/cslrfid/CSL-CS710S)\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## Version History\n\n- **v2.0 (Build 717)** - November 2025\n  - Removed MQTT functionality\n  - Updated to CSL-CS710S v1.11.0\n  - UI improvements and bug fixes\n\n- **v1.8.668** - June 2025\n  - Updated to CSL-CS710S v1.10.0\n  - Connection stability improvements\n\n- **v1.6.640** - March 2025\n  - Enhanced device connection handling\n  - Updated to CSL-CS710S v1.9.0\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcslrfid%2Fcs710s-ios-objc-app","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcslrfid%2Fcs710s-ios-objc-app","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcslrfid%2Fcs710s-ios-objc-app/lists"}