{"id":21232628,"url":"https://github.com/jeonghanlee/kameleon","last_synced_at":"2025-10-06T16:03:54.172Z","repository":{"id":99842180,"uuid":"134577105","full_name":"jeonghanlee/kameleon","owner":"jeonghanlee","description":"This is the forked repo for the kameleon developed by Ricardo","archived":false,"fork":false,"pushed_at":"2018-05-23T13:53:57.000Z","size":824,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-21T18:32:01.977Z","etag":null,"topics":["device","serial","simulator"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jeonghanlee.png","metadata":{"files":{"readme":"README","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2018-05-23T13:53:30.000Z","updated_at":"2018-07-30T21:08:12.000Z","dependencies_parsed_at":"2023-04-29T07:48:26.668Z","dependency_job_id":null,"html_url":"https://github.com/jeonghanlee/kameleon","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jeonghanlee%2Fkameleon","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jeonghanlee%2Fkameleon/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jeonghanlee%2Fkameleon/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jeonghanlee%2Fkameleon/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jeonghanlee","download_url":"https://codeload.github.com/jeonghanlee/kameleon/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243676705,"owners_count":20329431,"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","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":["device","serial","simulator"],"created_at":"2024-11-20T23:53:33.645Z","updated_at":"2025-10-06T16:03:54.116Z","avatar_url":"https://github.com/jeonghanlee.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"1. DESCRIPTION\nKameleon is a behavior-rich, non-memoryless and time-aware generic simulator.\nThis simulator, or more precisely server, handles ordinary clients through a\nTCP/IP connection. An instance of this client is an EPICS IOC or a Tango Device\nServer.\n\nKameleon uses a user-defined file that describes the commands received from a\nclient and, optionally, the reaction to these through statuses sent back to the\nclient. Please check file \"example.kam\" to get an extensive explanation about\ncommands and statuses, and how to define these. To get an illustration of the\nbehaviors achieved when running Kameleon with this file, please check the\nscreenshot \"example.png\". Both files are stored in folder \"simulators/example\".\n\nSeveral simulators of disparate devices (e.g. power supplies, oscilloscopes,\ntemperature sensors, heating circulators) can be found in folder \"simulators\"\nand be used with Kameleon out-of-the-box.\n\n\n2. FEATURES\nThe main features of Kameleon are the following:\n\n   - Ubiquitous (runs in disparate platforms such as Windows and Linux).\n   - Behavior-rich (predefined behaviors as well as user-defined):\n        - FIXED (sends a fixed value to the client).\n        - ENUM (sends a value - belonging to an enumeration - to the client).\n        - INCR (sends an incremented value to the client).\n        - RANDOM (sends a random value to the client).\n        - CUSTOM (sends a value from a user-defined function to the client).\n   - Non-memoryless (the state of the simulator can be preserved between events\n     and/or elapsed time so that, for instance, a finite-state machine can be\n     implemented).\n   - Time-aware (a status can be sent to the client either event-based -\n     whenever a certain command is received - or time-based - after a certain\n     elapsed time).\n   - Flexible (commands and statuses are described in a simple user-defined\n     file - nothing is hard-coded in Kameleon).\n\n\n3. DEPENDENCIES\nTo run Kameleon, a Python interpreter must be installed first. If there is\nnone installed in the machine, download one from http://www.python.org/download\nand install it.\n\n\n4. EXECUTION\nTo run Kameleon, open a terminal and execute:\n\n   python kameleon.py\n\nThis will make Kameleon listen for incoming clients at (default) port 9999. To\nhave the tool simulating a device where its commands/statuses are described in\na user-defined file named \"X\" (for instance), execute:\n\n   python kameleon.py --file=X\n\nFinally, to see all valid parameters accepted by Kameleon, just execute:\n\n   python kameleon.py --help\n\n\n5. SUPPORT\nPlease contact ricardo.fernandes@esss.se in case a bug is found or a feature\nis missing in Kameleon.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjeonghanlee%2Fkameleon","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjeonghanlee%2Fkameleon","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjeonghanlee%2Fkameleon/lists"}