{"id":21526034,"url":"https://github.com/zephylac/codage","last_synced_at":"2025-03-17T18:23:08.399Z","repository":{"id":80621633,"uuid":"107372333","full_name":"zephylac/Codage","owner":"zephylac","description":null,"archived":false,"fork":false,"pushed_at":"2017-12-06T13:16:09.000Z","size":28,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-24T05:31:59.648Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C","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/zephylac.png","metadata":{"files":{"readme":"README.md","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":"2017-10-18T07:18:22.000Z","updated_at":"2017-12-06T13:17:08.000Z","dependencies_parsed_at":null,"dependency_job_id":"6ada5b72-6c0d-43a4-8dee-dc98253eb360","html_url":"https://github.com/zephylac/Codage","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zephylac%2FCodage","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zephylac%2FCodage/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zephylac%2FCodage/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zephylac%2FCodage/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zephylac","download_url":"https://codeload.github.com/zephylac/Codage/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244085028,"owners_count":20395523,"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":[],"created_at":"2024-11-24T01:41:44.026Z","updated_at":"2025-03-17T18:23:08.379Z","avatar_url":"https://github.com/zephylac.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# TP Codage\n\n\nPour executer les TP exécuter les commandes suivantes\n\n```C\ncd Codage/(Le dossier du tp)\nmake\n./test\n```\n## TP1 Code d'etalement\n\nL'emetteur et le récepteur on la même matrice de Hadamard ainsi que la même façon de déterminer les séquences des utilisateurs.\n\n\n### Emetteur\n\nL'emetteur se charge de saisir le nombre d'utilisateurs. Une fois saisit, il génère la matrice de Hadamard dynamiquement en fonction de ce nombre et détermine les séquences d'étalement pour chaque utilisateur. \u003cbr /\u003e\nOn saisit la taille du message a envoyer (ce nombre est le même pour tous les utilisateurs), il est exprime en nombre de bit.\nOn saisit enfin les messages de chaque utilisateurs.\n\n### Recepteur\n\nLe recepteur se charge de lire dans le canal. Il connait le nombre d'utilisateurs. Il peut donc décoder la trame reçu, puis isoler le message de chaque utilisateur.\n\n\n### Canal\n\nPour representer le canal parfait lors de ce TP, nous avons décidé d'utiliser un fichier.\n\u003cbr /\u003e\n\u003cbr /\u003e\n\n## TP2 Générateur Pseudo Aléatoire\n\n### Utilisation \nLors de la saisie, si plusieurs nombres doivent être saisis, il faut les séparer par un espace ou par un retour chariot (entrée).\n```C\nSaisir la longueur de la sequence a generer: 20\nSaisir la longueur du registre: 5\nSaisir le registre: 1 1 1 1 1\nSaisir la longueur du polynome de generation: 2\nSaisir le polynome de generation: 5 2\n```\n### Code à longueur maximale\nLors de l'initialisation d'un code à Longueur Maximale, l'utilisateur choisit :\n\u003cbr /\u003e\n* La longueur de la séquence a générer \n* Le nombre d'étages souhaité\n* L'initialisation du codeur \n* La longueur du polynôme de génération (le nombre de colonnes qui effectueront le XOR )\n* Le polynome de génération\n\n### Code de Gold\n\nLe code de Gold étant deux CLM (Code à Longueur Maximale), on saisit deux code LM.\nPour qu'un code de Gold soit valide les deux CLM doivent avoir le même nombre de registres (étages),\nDe même il suffit de ne saisir qu'une fois la longueur de la séquence  que l'on veut générer.\n\n### Code JPL\n\nLe code de JPL est composé d'au moins deux CLM. On choisit donc le nombre de CLM que l'on veut.\nPuis on saisit les CLM un par un. Pour qu'un code JPL soit valide, le nombre de registres de chaque CLM doit être premier avec les autres. On verifie donc a chaque fois qu'un nouveau CLM est rentré s'il est bien premier avec les autres.\nDe même il suffit de ne saisir qu'une fois la longueur de la séquence  que l'on veut générer.\n\n## TP3 Agent Life Cycle\nPar faute de temps  nous n'avons pas réussi à finir ce TP. Mais nous pouvons tout de même dire comment nous avons procéder pour essayer le faire.\u003cbr /\u003e\nNous avons utilisé des Fork au lieu des Thread pour créer les fils, en effet on fait autant de fork qu'il y a d'agents. Pour réaliser les différentes transistions des états de l'agent on a utilisé des signaux. Par exemple pour suspendre un agent on utilise le signal SIGSTOP, pour le reprendre le signal SIGCONT, pour quitter et le détruire le signal SIGKILL.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzephylac%2Fcodage","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzephylac%2Fcodage","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzephylac%2Fcodage/lists"}