{"id":23080778,"url":"https://github.com/chen0040/cs-ipico-reader","last_synced_at":"2025-09-12T19:35:42.316Z","repository":{"id":85883567,"uuid":"97022442","full_name":"chen0040/cs-ipico-reader","owner":"chen0040","description":"C# IPICO Reader","archived":false,"fork":false,"pushed_at":"2017-07-19T08:45:38.000Z","size":36,"stargazers_count":2,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-08-22T01:29:59.986Z","etag":null,"topics":["ipico-reader","rfid-reader","socket"],"latest_commit_sha":null,"homepage":null,"language":"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/chen0040.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}},"created_at":"2017-07-12T15:16:28.000Z","updated_at":"2019-02-15T09:36:42.000Z","dependencies_parsed_at":"2023-03-13T07:18:28.622Z","dependency_job_id":null,"html_url":"https://github.com/chen0040/cs-ipico-reader","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/chen0040/cs-ipico-reader","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chen0040%2Fcs-ipico-reader","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chen0040%2Fcs-ipico-reader/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chen0040%2Fcs-ipico-reader/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chen0040%2Fcs-ipico-reader/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/chen0040","download_url":"https://codeload.github.com/chen0040/cs-ipico-reader/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chen0040%2Fcs-ipico-reader/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":274864174,"owners_count":25364230,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-12T02:00:09.324Z","response_time":60,"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":["ipico-reader","rfid-reader","socket"],"created_at":"2024-12-16T13:16:24.185Z","updated_at":"2025-09-12T19:35:42.253Z","avatar_url":"https://github.com/chen0040.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# cs-ipico-reader\n\nIPICO reader provides a turnkey sports timing solution for medium to large active sports events using RFID chip technology. This project provides library for reading streaming data and downloading cache files from IPICO elite and IPICO lite reader.\n\n# Usage\n\nGit clone the project, add the project to your C# solution and add the project reference to your main application. Note that the library is written with Target Framework .NET 4.6.\n\nFor the usage cases, please refer to the unit tests. Below are some usage scenarios illustrated with sample codes.\n\n### Download log files from ipico reader \n\n```cs \nList\u003cstring\u003e logs = ReaderLog.Files;\nforeach (string logname in logs)\n{\n\tConsole.WriteLine(\"Start downloading {0} ...\", logname);\n\n\tstring logpath = Path.Combine(\"/tmp\", logname);\n\ttry\n\t{\n\t\tReaderUtil.DownloadLog(host, logname, logpath, (ln, perc) =\u003e\n\t\t{\n\t\t\tConsole.WriteLine(\"Downloading {0}: {1}%\\r\", logname, perc);\n\t\t});\n\t}\n\tcatch (Exception ex)\n\t{\n\t\tConsole.WriteLine(ex.ToString());\n\t}\n}\n```\n\nThe sample code above downloads 4 different files from the ipico reader (which has a network uri \u003ci\u003ehost\u003c/i\u003e), the files downloaded are stored in the /tmp folder of the local computer. The downloaded files are from ReaderLog.Files which are listed below:\n\n* infod.log\n* ttyS0.log\n* ttyS1.log\n* FS_LS.log\n\n\n### Extracting RFID Tag ID and Timing\n\nThe source code below shows how to use the library to extract the tag id and timing from the log files from ipico reader\n\n```cs\nstring logname = ReaderLog.FS_LS;\nstring logpath = Path.Combine(\"/tmp\", logname);\n\nif (!File.Exists(logpath))\n{\n\tConsole.WriteLine(\"Start downloading {0} ...\", logname);\n\n\ttry\n\t{\n\t\tReaderUtil.DownloadLog(host, logname, logpath, (ln, perc) =\u003e\n\t\t{\n\t\t\tConsole.WriteLine(\"Downloading {0}: {1}%\\r\", logname, perc);\n\t\t});\n\t}\n\tcatch (Exception ex)\n\t{\n\t\tConsole.WriteLine(ex.ToString());\n\t}\n}\n\nstring line = null;\nusing (StreamReader reader = new StreamReader(logpath))\n{\n\twhile ((line = reader.ReadLine()) != null)\n\t{\n\t\tstring tag = ReaderDecoder.ExtractTagID(line);\n\t\tDateTime? dt=ReaderDecoder.ExtractDateTime(line);\n\t\tif (dt.HasValue)\n\t\t{\n\t\t\tConsole.WriteLine(\"{0}:{1}\", tag, dt.Value);\n\t\t}\n\t}\n}\n```\n\n\n### Read tags and timing with offset start time with ipico reader\n\nThe source code below shows how to use the library to read tag ids and timing in real-time from ipico-reader with offset start time\n\n```cs\n string logname = ReaderLog.FS_LS;\nDateTime start_time = new DateTime(2013, 10, 29, 15, 14, 0);\nList\u003cstring\u003e tags = ReaderUtil.ReadTags(host, logname, (fLine) =\u003e\n\t{\n\t\tDateTime? rec_time = ReaderDecoder.ExtractDateTime(fLine);\n\t\tif (rec_time != null)\n\t\t{\n\t\t\tif (rec_time.Value \u003e start_time)\n\t\t\t{\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t});\nforeach (string tag in tags)\n{\n\tConsole.WriteLine(\"Tag: {0}\", tag);\n}\n```\n\n### Other API\n\nThe sample code belows show how to obtain the ipico reader clock information\n\n```cs\nConsole.WriteLine(\"Reader Time: {0}\", ReaderUtil.GetReaderTime(host, ReaderType.Elite));\nConsole.WriteLine(\"Time Difference: {0}\", ReaderUtil.CompareClocks(host, ReaderType.Elite));\n\nReaderUtil.UpdateReaderTime(host, ReaderType.Elite);\n```\n\nThe sample code below show how to check connection with ipico reader\n\n```cs\nboolean connected = ReaderUtil.CanConnect2Reader(string host)\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchen0040%2Fcs-ipico-reader","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchen0040%2Fcs-ipico-reader","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchen0040%2Fcs-ipico-reader/lists"}