first commit with astro
This commit is contained in:
parent
a87824d57c
commit
25d80a4a31
31
.gitignore
vendored
31
.gitignore
vendored
@ -1,20 +1,21 @@
|
||||
# Dependencies
|
||||
/node_modules
|
||||
# build output
|
||||
dist/
|
||||
# generated types
|
||||
.astro/
|
||||
|
||||
# Production
|
||||
/build
|
||||
|
||||
# Generated files
|
||||
.docusaurus
|
||||
.cache-loader
|
||||
|
||||
# Misc
|
||||
.DS_Store
|
||||
.env.local
|
||||
.env.development.local
|
||||
.env.test.local
|
||||
.env.production.local
|
||||
# dependencies
|
||||
node_modules/
|
||||
|
||||
# logs
|
||||
npm-debug.log*
|
||||
yarn-debug.log*
|
||||
yarn-error.log*
|
||||
pnpm-debug.log*
|
||||
|
||||
|
||||
# environment variables
|
||||
.env
|
||||
.env.production
|
||||
|
||||
# macOS-specific files
|
||||
.DS_Store
|
||||
|
51
README.md
Normal file
51
README.md
Normal file
@ -0,0 +1,51 @@
|
||||
# Starlight Starter Kit: Basics
|
||||
|
||||
```
|
||||
npm create astro@latest -- --template starlight
|
||||
```
|
||||
|
||||
[![Open in StackBlitz](https://developer.stackblitz.com/img/open_in_stackblitz.svg)](https://stackblitz.com/github/withastro/starlight/tree/main/examples/basics)
|
||||
[![Open with CodeSandbox](https://assets.codesandbox.io/github/button-edit-lime.svg)](https://codesandbox.io/p/sandbox/github/withastro/starlight/tree/main/examples/basics)
|
||||
|
||||
> 🧑🚀 **Seasoned astronaut?** Delete this file. Have fun!
|
||||
|
||||
## 🚀 Project Structure
|
||||
|
||||
Inside of your Astro + Starlight project, you'll see the following folders and files:
|
||||
|
||||
```
|
||||
.
|
||||
├── public/
|
||||
├── src/
|
||||
│ ├── assets/
|
||||
│ ├── content/
|
||||
│ │ ├── docs/
|
||||
│ │ └── config.ts
|
||||
│ └── env.d.ts
|
||||
├── astro.config.mjs
|
||||
├── package.json
|
||||
└── tsconfig.json
|
||||
```
|
||||
|
||||
Starlight looks for `.md` or `.mdx` files in the `src/content/docs/` directory. Each file is exposed as a route based on its file name.
|
||||
|
||||
Images can be added to `src/assets/` and embedded in Markdown with a relative link.
|
||||
|
||||
Static assets, like favicons, can be placed in the `public/` directory.
|
||||
|
||||
## 🧞 Commands
|
||||
|
||||
All commands are run from the root of the project, from a terminal:
|
||||
|
||||
| Command | Action |
|
||||
| :------------------------ | :----------------------------------------------- |
|
||||
| `npm install` | Installs dependencies |
|
||||
| `npm run dev` | Starts local dev server at `localhost:4321` |
|
||||
| `npm run build` | Build your production site to `./dist/` |
|
||||
| `npm run preview` | Preview your build locally, before deploying |
|
||||
| `npm run astro ...` | Run CLI commands like `astro add`, `astro check` |
|
||||
| `npm run astro -- --help` | Get help using the Astro CLI |
|
||||
|
||||
## 👀 Want to learn more?
|
||||
|
||||
Check out [Starlight’s docs](https://starlight.astro.build/), read [the Astro documentation](https://docs.astro.build), or jump into the [Astro Discord server](https://astro.build/chat).
|
30
astro.config.mjs
Normal file
30
astro.config.mjs
Normal file
@ -0,0 +1,30 @@
|
||||
import { defineConfig } from 'astro/config';
|
||||
import starlight from '@astrojs/starlight';
|
||||
|
||||
// https://astro.build/config
|
||||
export default defineConfig({
|
||||
integrations: [
|
||||
starlight({
|
||||
title: 'My Docs',
|
||||
social: {
|
||||
github: 'https://github.com/withastro/starlight',
|
||||
},
|
||||
sidebar: [
|
||||
{
|
||||
label: 'Guides',
|
||||
items: [
|
||||
// Each item here is one entry in the navigation menu.
|
||||
{ label: 'Example Guide', link: '/guides/example/' },
|
||||
],
|
||||
},
|
||||
{
|
||||
label: 'Reference',
|
||||
autogenerate: { directory: 'reference' },
|
||||
},
|
||||
],
|
||||
}),
|
||||
],
|
||||
|
||||
// Process images with sharp: https://docs.astro.build/en/guides/assets/#using-sharp
|
||||
image: { service: { entrypoint: 'astro/assets/services/sharp' } },
|
||||
});
|
@ -1,3 +0,0 @@
|
||||
module.exports = {
|
||||
presets: [require.resolve('@docusaurus/core/lib/babel/preset')],
|
||||
};
|
@ -1,146 +0,0 @@
|
||||
// @ts-check
|
||||
// Note: type annotations allow type checking and IDEs autocompletion
|
||||
|
||||
const lightCodeTheme = require("prism-react-renderer/themes/github");
|
||||
const darkCodeTheme = require("prism-react-renderer/themes/dracula");
|
||||
|
||||
/** @type {import('@docusaurus/types').Config} */
|
||||
const config = {
|
||||
title: "Doc PLS5618",
|
||||
tagline: "Documentation PLS5618",
|
||||
favicon: "img/favicon.ico",
|
||||
|
||||
// Set the production url of your site here
|
||||
url: "https://docs.pls5618.com",
|
||||
// Set the /<baseUrl>/ pathname under which your site is served
|
||||
// For GitHub pages deployment, it is often '/<projectName>/'
|
||||
baseUrl: "/",
|
||||
|
||||
onBrokenLinks: "throw",
|
||||
onBrokenMarkdownLinks: "warn",
|
||||
|
||||
// Even if you don't use internalization, you can use this field to set useful
|
||||
// metadata like html lang. For example, if your site is Chinese, you may want
|
||||
// to replace "en" with "zh-Hans".
|
||||
i18n: {
|
||||
defaultLocale: "fr",
|
||||
locales: ["fr"],
|
||||
},
|
||||
|
||||
presets: [
|
||||
[
|
||||
"classic",
|
||||
/** @type {import('@docusaurus/preset-classic').Options} */
|
||||
({
|
||||
docs: false,
|
||||
theme: {
|
||||
customCss: require.resolve("./src/css/custom.css"),
|
||||
},
|
||||
}),
|
||||
],
|
||||
],
|
||||
|
||||
plugins: [
|
||||
[
|
||||
"@docusaurus/plugin-content-docs",
|
||||
{
|
||||
id: "java",
|
||||
path: "java",
|
||||
routeBasePath: "java",
|
||||
sidebarPath: require.resolve("./sidebars.js"),
|
||||
},
|
||||
],
|
||||
[
|
||||
"@docusaurus/plugin-content-docs",
|
||||
{
|
||||
id: "robot",
|
||||
path: "robot",
|
||||
routeBasePath: "robot",
|
||||
sidebarPath: require.resolve("./sidebars2.js"),
|
||||
},
|
||||
],
|
||||
],
|
||||
|
||||
themeConfig:
|
||||
/** @type {import('@docusaurus/preset-classic').ThemeConfig} */
|
||||
({
|
||||
// Replace with your project's social card
|
||||
image: "img/logo.png",
|
||||
navbar: {
|
||||
title: "PLS 5618",
|
||||
logo: {
|
||||
alt: "PLS 5618",
|
||||
src: "img/logo.png",
|
||||
},
|
||||
items: [
|
||||
{
|
||||
type: "doc",
|
||||
docId: "index",
|
||||
position: "left",
|
||||
label: "Java",
|
||||
docsPluginId: "java",
|
||||
},
|
||||
{
|
||||
type: "doc",
|
||||
docId: "index",
|
||||
position: "left",
|
||||
label: "Robot",
|
||||
docsPluginId: "robot",
|
||||
},
|
||||
],
|
||||
},
|
||||
footer: {
|
||||
style: "dark",
|
||||
links: [
|
||||
{
|
||||
title: "Documentation",
|
||||
items: [
|
||||
{
|
||||
label: "Java",
|
||||
to: "/java",
|
||||
},
|
||||
{
|
||||
label: "Robot",
|
||||
to: "/robot",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
title: "Communauté",
|
||||
items: [
|
||||
{
|
||||
label: "Facebook",
|
||||
href: "https://www.facebook.com/PLS5618",
|
||||
},
|
||||
{
|
||||
label: "Twitter",
|
||||
href: "https://twitter.com/pls5618",
|
||||
},
|
||||
{
|
||||
label: "Instagram",
|
||||
href: "https://www.instagram.com/team5618",
|
||||
},
|
||||
{
|
||||
label: "Site Internet",
|
||||
href: "https://pls5618.com/",
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
copyright: `Copyright © ${new Date().getFullYear()} PLS 5618. Fait avec Docusaurus.`,
|
||||
},
|
||||
prism: {
|
||||
additionalLanguages: ["java", "groovy"],
|
||||
theme: lightCodeTheme,
|
||||
darkTheme: darkCodeTheme,
|
||||
},
|
||||
algolia: {
|
||||
appId: "FWL5E6J51N",
|
||||
apiKey: "311ff1b7dfe8b50e47c8f1b58617356d",
|
||||
indexName: "pls5618",
|
||||
contextualSearch: true,
|
||||
},
|
||||
}),
|
||||
};
|
||||
|
||||
module.exports = config;
|
@ -1 +0,0 @@
|
||||
# Classes
|
@ -1,8 +0,0 @@
|
||||
---
|
||||
sidebar_position: 1
|
||||
---
|
||||
|
||||
# Introduction
|
||||
|
||||
Pour programmer le robot, nous utilisons le langage de programmation **Java**.
|
||||
Dans cette section, vous allez apprendre les bases de Java.
|
@ -1 +0,0 @@
|
||||
# Syntaxe
|
@ -1 +0,0 @@
|
||||
# Try-Catch
|
@ -1,61 +0,0 @@
|
||||
---
|
||||
sidebar_position: 2
|
||||
---
|
||||
|
||||
# Variables et Types
|
||||
|
||||
En Java, comme dans plusieurs langagues de programmation, l'information est stockée dans des [variables](#variables). Ces variables ont toutes un [type](#types), qui permet de déterminer ce qu'elles peuvent contenir.
|
||||
|
||||
## Variables
|
||||
|
||||
Une variable représente un espace en mémoire pour stocker de l'information.
|
||||
Chaque variable a un **nom**, un **type** et contient de l'information. Pour créer un variable, on l'écrit `type nom = valeur`. À savoir que la valeur est optionnelle, car elle peut être donnée plus tard.
|
||||
|
||||
## Types
|
||||
|
||||
Il existe plusieurs types pour les variables, certains viennent dans Java, mais il est aussi possible pour vous d'en créer. Certains types ne font que stocker une donnée, ils sont donc de types [primitifs](#primitifs). D'autres ont aussi de la fonctionnalité, ce sont des [classes](#classes).
|
||||
|
||||
### Primitifs
|
||||
|
||||
Les types primitifs ne font que stocker de la donnée. En Java, il existe 8 types primitifs qui permettes de stocker des **nombres**, **charactères** et **vrai/faux**.
|
||||
|
||||
Voici les différents types primitifs
|
||||
|
||||
| **Type** | **Stockage** |
|
||||
| --------- | -------------------------------------------- |
|
||||
| _int_ | _Nombre entier_ |
|
||||
| byte | Peut stocker n'importe quoi, mais très petit |
|
||||
| short | Petit nombre entier |
|
||||
| long | Très grand nombre entier |
|
||||
| float | Nombre à virgule |
|
||||
| _double_ | _Nombre à virgule plus précis_ |
|
||||
| _boolean_ | _Vrai/Faux_ |
|
||||
| char | Charactère |
|
||||
|
||||
:::note
|
||||
Les types en italique (_int_, _double_, _boolean_) sont les plus utiles.
|
||||
:::
|
||||
|
||||
Voici comment créer un `double`:
|
||||
|
||||
```java
|
||||
double nombre = 4.2;
|
||||
```
|
||||
|
||||
### Classes
|
||||
|
||||
Les classes permettent d'ajouter de la fonctionnalité à une variable. Elles permettent aussi de regrouper plusiers variables ensemble. On les reconnait par le fait que leur nom commence par une majuscule (les types primitifs commencent tous par une minuscule). Un exemple de classe qui vient avec Java est le `String`, qui contient une chaine de charactères (`char`). Ça permet donc de stocker des mots ou des phrases. Les string ajoute aussi quelques fonctionalités qui permettent de séparer une phrase en mots ou de savoir la longueur de la chaine de charactère par exemple.
|
||||
|
||||
:::info
|
||||
Plus d'information sur les classes est donnée dans la section [classes](./classes).
|
||||
:::
|
||||
|
||||
Voici comment créer un `String`:
|
||||
|
||||
```java
|
||||
String phrase = "Hello World!";
|
||||
```
|
||||
|
||||
:::note
|
||||
Vous remarquez que dans les exemples sur cette page, les lignes finissent toutes par `;`. Pour en savoir plus, lisez la page [syntaxe](./syntaxe)
|
||||
:::
|
14827
package-lock.json
generated
14827
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
53
package.json
53
package.json
@ -1,46 +1,17 @@
|
||||
{
|
||||
"name": "docs",
|
||||
"version": "0.0.0",
|
||||
"private": true,
|
||||
"name": "pls-docs",
|
||||
"type": "module",
|
||||
"version": "0.0.1",
|
||||
"scripts": {
|
||||
"docusaurus": "docusaurus",
|
||||
"start": "docusaurus start",
|
||||
"build": "docusaurus build",
|
||||
"swizzle": "docusaurus swizzle",
|
||||
"deploy": "docusaurus deploy",
|
||||
"clear": "docusaurus clear",
|
||||
"serve": "docusaurus serve",
|
||||
"write-translations": "docusaurus write-translations",
|
||||
"write-heading-ids": "docusaurus write-heading-ids"
|
||||
"dev": "astro dev",
|
||||
"start": "astro dev",
|
||||
"build": "astro build",
|
||||
"preview": "astro preview",
|
||||
"astro": "astro"
|
||||
},
|
||||
"dependencies": {
|
||||
"@docusaurus/core": "^2.4.0",
|
||||
"@docusaurus/plugin-content-docs": "^2.4.0",
|
||||
"@docusaurus/preset-classic": "^2.4.0",
|
||||
"@docusaurus/theme-search-algolia": "^2.4.0",
|
||||
"@mdx-js/react": "^1.6.22",
|
||||
"clsx": "^1.2.1",
|
||||
"prism-react-renderer": "^1.3.5",
|
||||
"react": "^17.0.2",
|
||||
"react-dom": "^17.0.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@docusaurus/eslint-plugin": "^2.4.0",
|
||||
"@docusaurus/module-type-aliases": "^2.4.0"
|
||||
},
|
||||
"browserslist": {
|
||||
"production": [
|
||||
">0.5%",
|
||||
"not dead",
|
||||
"not op_mini all"
|
||||
],
|
||||
"development": [
|
||||
"last 1 chrome version",
|
||||
"last 1 firefox version",
|
||||
"last 1 safari version"
|
||||
]
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=16.14"
|
||||
"@astrojs/starlight": "^0.9.0",
|
||||
"astro": "^3.0.6",
|
||||
"sharp": "^0.32.5"
|
||||
}
|
||||
}
|
||||
}
|
1
public/favicon.svg
Normal file
1
public/favicon.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 128 128"><path fill-rule="evenodd" d="M81 36 64 0 47 36l-1 2-9-10a6 6 0 0 0-9 9l10 10h-2L0 64l36 17h2L28 91a6 6 0 1 0 9 9l9-10 1 2 17 36 17-36v-2l9 10a6 6 0 1 0 9-9l-9-9 2-1 36-17-36-17-2-1 9-9a6 6 0 1 0-9-9l-9 10v-2Zm-17 2-2 5c-4 8-11 15-19 19l-5 2 5 2c8 4 15 11 19 19l2 5 2-5c4-8 11-15 19-19l5-2-5-2c-8-4-15-11-19-19l-2-5Z" clip-rule="evenodd"/><path d="M118 19a6 6 0 0 0-9-9l-3 3a6 6 0 1 0 9 9l3-3Zm-96 4c-2 2-6 2-9 0l-3-3a6 6 0 1 1 9-9l3 3c3 2 3 6 0 9Zm0 82c-2-2-6-2-9 0l-3 3a6 6 0 1 0 9 9l3-3c3-2 3-6 0-9Zm96 4a6 6 0 0 1-9 9l-3-3a6 6 0 1 1 9-9l3 3Z"/><style>path{fill:#000}@media (prefers-color-scheme:dark){path{fill:#fff}}</style></svg>
|
After Width: | Height: | Size: 696 B |
@ -1,5 +0,0 @@
|
||||
---
|
||||
sidebar_position: 2
|
||||
---
|
||||
|
||||
# Créer un projet
|
@ -1,7 +0,0 @@
|
||||
---
|
||||
sidebar_position: 2
|
||||
---
|
||||
|
||||
# Premier Projet
|
||||
|
||||
Dans cette section, vous apprendrez comment installer le logiciel de programmation et comment créer un projet.
|
@ -1,23 +0,0 @@
|
||||
---
|
||||
sidebar_position: 1
|
||||
---
|
||||
|
||||
# Installation
|
||||
|
||||
Pour programmer un robot _FRC_, nous avons plusieurs choses à installer:
|
||||
|
||||
- Les [outils de développement](#outils-de-développement), qui permettent de programmer le robot et déployer le programme sur un robot
|
||||
- Les [outils de jeux](#outils-de-jeu), qui permettent de controler le robot
|
||||
- L'[outil de configuration de radio](#outil-de-configuration-de-radio) (optionnel), qui permet de configurer le routeur du robot
|
||||
|
||||
## Outils de développement
|
||||
|
||||
Les outils de développement sont les outils qui permettent de créer un programme pour le robot et de l'envoyer sur le robot. L'outil principal est l'éditeur [VSCode](https://code.visualstudio.com/) avec des extensions faites pour le développement d'un robot _FRC_.
|
||||
|
||||
Pour télécharger les outils, vous pouvez aller sur leur [page GitHub](https://github.com/wpilibsuite/allwpilib/releases/), descendre et télécharger le fichier `WPILib_Windows-xxx.x.x.iso` pour la version la plus récente disponible.
|
||||
|
||||
![page github](/img/installation/github.png)
|
||||
|
||||
## Outils de jeu
|
||||
|
||||
## Outil de configuration de Radio
|
@ -1,10 +0,0 @@
|
||||
---
|
||||
sidebar_position: 1
|
||||
---
|
||||
|
||||
# Introduction
|
||||
|
||||
Comme vous l'aurez compris avec la section [Java](../java/), un robot _FRC_ peut être programmé en Java.
|
||||
Il peut aussi être programmé en _C++_, _LabView_ ou _Python_, mais nous avons choisi _Java_ pour sa simplicité et sa robustesse.
|
||||
|
||||
Dans cette section, vous apprendrez comment programmer un robot _FRC_ en _Java_ en utilisant la bibliothèque [WPILib](https://docs.wpilib.org/)
|
@ -1,77 +0,0 @@
|
||||
---
|
||||
sidebar_position: 2
|
||||
---
|
||||
|
||||
# Installer AdvantageKit
|
||||
|
||||
AdvantageKit permet de recevoir plus d'information du robot, ce qui nous aidera à debug.
|
||||
|
||||
[Plus d'information](https://github.com/Mechanical-Advantage/AdvantageKit/blob/main/docs/INSTALLATION.md)
|
||||
|
||||
## Ajouter le répertoire d'AdvantageKit
|
||||
|
||||
Ajouter ce code à la fin du fichier `build.gradle` pour ajouter le repertoire d'AdvantageKit.
|
||||
|
||||
```groovy
|
||||
repositories {
|
||||
maven {
|
||||
url = uri("https://maven.pkg.github.com/Mechanical-Advantage/AdvantageKit")
|
||||
credentials {
|
||||
username = "Mechanical-Advantage-Bot"
|
||||
password = "\u0067\u0068\u0070\u005f\u006e\u0056\u0051\u006a\u0055\u004f\u004c\u0061\u0079\u0066\u006e\u0078\u006e\u0037\u0051\u0049\u0054\u0042\u0032\u004c\u004a\u006d\u0055\u0070\u0073\u0031\u006d\u0037\u004c\u005a\u0030\u0076\u0062\u0070\u0063\u0051"
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Il faut aussi ajouter ce code en dessous pour remplacer certaines fonctionalités de WPILib par celles de AdvantageKit.
|
||||
|
||||
```groovy
|
||||
configurations.all {
|
||||
exclude group: "edu.wpi.first.wpilibj"
|
||||
}
|
||||
```
|
||||
|
||||
## Ajout dans le programme
|
||||
|
||||
Il faut ensuite ajouter les bibliothèques qui permettent de choisir quoi enregistrer.
|
||||
|
||||
### Bibliothèques
|
||||
|
||||
Il faut utiliser la même technique que dans [Bibliothèques de composants](./vendor_libraries) avec le lien suivant:
|
||||
|
||||
```
|
||||
https://github.com/Mechanical-Advantage/AdvantageKit/releases/latest/download/AdvantageKit.json
|
||||
```
|
||||
|
||||
### Configuration du robot
|
||||
|
||||
Il faut ensuite aller remplacer le type de robot pour celui de AdvantageKit dans `Robot.java`:
|
||||
|
||||
```java
|
||||
public class Robot extends LoggedRobot {
|
||||
...
|
||||
}
|
||||
```
|
||||
|
||||
Ensuite, dans `robotInit()` ajoutez les lignes suivantes:
|
||||
|
||||
```java
|
||||
Logger.getInstance().recordMetadata("ProjectName", "5618BOT");
|
||||
if (isReal()) {
|
||||
Logger.getInstance().addDataReceiver(new WPILOGWriter("/media/sda1/"));
|
||||
new PowerDistribution(1, ModuleType.kCTRE);
|
||||
}
|
||||
Logger.getInstance().addDataReceiver(new NT4Publisher());
|
||||
Logger.getInstance().start();
|
||||
```
|
||||
|
||||
:::caution
|
||||
Il faut importer le `Logger` de `org.littletonrobotics.junction.Logger`.
|
||||
:::
|
||||
|
||||
:::note
|
||||
Remplacer le ModuleType du PowerDistribution par kREV selon le PDP utilisé.
|
||||
:::
|
||||
|
||||
AdvantageKit est installé. Vous pouvez maintenant utiliser [AdvantageScope](https://github.com/Mechanical-Advantage/AdvantageScope).
|
@ -1,5 +0,0 @@
|
||||
---
|
||||
sidebar_position: 3
|
||||
---
|
||||
|
||||
# Nouveau Projet
|
@ -1,35 +0,0 @@
|
||||
---
|
||||
sidebar_position: 1
|
||||
---
|
||||
|
||||
# Bibliothèques de composants
|
||||
|
||||
NavX
|
||||
|
||||
```
|
||||
https://dev.studica.com/releases/2023/NavX.json
|
||||
```
|
||||
|
||||
Phoenix (CTRE)
|
||||
|
||||
```
|
||||
https://maven.ctr-electronics.com/release/com/ctre/phoenix/Phoenix5-frc2023-latest.json
|
||||
```
|
||||
|
||||
REV
|
||||
|
||||
```
|
||||
https://software-metadata.revrobotics.com/REVLib-2023.json
|
||||
```
|
||||
|
||||
AdvantageKit (voir [AdvantageKit](./advantagekit))
|
||||
|
||||
```
|
||||
https://github.com/Mechanical-Advantage/AdvantageKit/releases/latest/download/AdvantageKit.json
|
||||
```
|
||||
|
||||
YAGSL (Swerve, voir [YAGSL](./yagsl.md))
|
||||
|
||||
```
|
||||
https://broncbotz3481.github.io/YAGSL-Lib/yagsl/yagsl.json
|
||||
```
|
@ -1,44 +0,0 @@
|
||||
---
|
||||
sidebar_position: 3
|
||||
---
|
||||
|
||||
# YAGSL (Swerve)
|
||||
|
||||
[Yet Another Generic Swerve Library](https://github.com/BroncBotz3481/YAGSL) permet de facilement créer un sous-système swerve pour un robot.
|
||||
|
||||
Plus d'information sera ajoutée, mais pour l'instant vous pouvez suivre la documentation [ici](https://github.com/BroncBotz3481/YAGSL)
|
||||
|
||||
## Installation
|
||||
|
||||
Installer les [bibliothèques](vendor_libraries.md) de NavX, Phoenix, REV et YAGSL.
|
||||
|
||||
## Configuration
|
||||
|
||||
Pour utiliser la bibliothèque, nous devons lui fournir des fichiers de configuration qui décrivent notre système swerve (les différents moteurs et leurs ID, entre autres).
|
||||
|
||||
Vous pouvez donc aller chercher le dossier d'[exemple](https://github.com/BroncBotz3481/YAGSL/tree/main/deploy) ou le [créer vous-même](https://broncbotz3481.github.io/YAGSL-Example/). Vous devez mettre le dossier `swerve` dans le dossier `deploy` de votre projet.
|
||||
|
||||
## Utilisation
|
||||
|
||||
1. Créer un subsystem pour le swerve
|
||||
2. Créer une variable `SwerveDrive`
|
||||
3. Créer le `SwerveDrive` à partir de la configuration
|
||||
|
||||
```java
|
||||
SwerveDrive swerveDrive;
|
||||
|
||||
/** Creates a new SwerveSubsystem. */
|
||||
public SwerveSubsystem(File file) {
|
||||
try {
|
||||
this.swerveDrive = new SwerveParser(file).createSwerveDrive();
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
:::note
|
||||
Ici, on utilise un [try-catch](../../java/try-catch){target="\_blank"}, car il pourrait y avoir une erreur si les fichiers de configuration n'existent pas;
|
||||
:::
|
||||
|
||||
Vous devrez ensuite ajouter vos méthodes pour intéragir avec le `SwerveDrive` dans le subsystem.
|
33
sidebars.js
33
sidebars.js
@ -1,33 +0,0 @@
|
||||
/**
|
||||
* Creating a sidebar enables you to:
|
||||
- create an ordered group of docs
|
||||
- render a sidebar for each doc of that group
|
||||
- provide next/previous navigation
|
||||
|
||||
The sidebars can be generated from the filesystem, or explicitly defined here.
|
||||
|
||||
Create as many sidebars as you want.
|
||||
*/
|
||||
|
||||
// @ts-check
|
||||
|
||||
/** @type {import('@docusaurus/plugin-content-docs').SidebarsConfig} */
|
||||
const sidebars = {
|
||||
// By default, Docusaurus generates a sidebar from the docs folder structure
|
||||
tutorialSidebar: [{type: 'autogenerated', dirName: '.'}],
|
||||
|
||||
// But you can create a sidebar manually
|
||||
/*
|
||||
tutorialSidebar: [
|
||||
'intro',
|
||||
'hello',
|
||||
{
|
||||
type: 'category',
|
||||
label: 'Tutorial',
|
||||
items: ['tutorial-basics/create-a-document'],
|
||||
},
|
||||
],
|
||||
*/
|
||||
};
|
||||
|
||||
module.exports = sidebars;
|
@ -1,6 +0,0 @@
|
||||
/** @type {import('@docusaurus/plugin-content-docs').SidebarsConfig} */
|
||||
const sidebars = {
|
||||
tutorialSidebar: [{ type: "autogenerated", dirName: "." }],
|
||||
};
|
||||
|
||||
module.exports = sidebars;
|
BIN
src/assets/houston.webp
Normal file
BIN
src/assets/houston.webp
Normal file
Binary file not shown.
After Width: | Height: | Size: 96 KiB |
7
src/content/config.ts
Normal file
7
src/content/config.ts
Normal file
@ -0,0 +1,7 @@
|
||||
import { defineCollection } from 'astro:content';
|
||||
import { docsSchema, i18nSchema } from '@astrojs/starlight/schema';
|
||||
|
||||
export const collections = {
|
||||
docs: defineCollection({ schema: docsSchema() }),
|
||||
i18n: defineCollection({ type: 'data', schema: i18nSchema() }),
|
||||
};
|
11
src/content/docs/guides/example.md
Normal file
11
src/content/docs/guides/example.md
Normal file
@ -0,0 +1,11 @@
|
||||
---
|
||||
title: Example Guide
|
||||
description: A guide in my new Starlight docs site.
|
||||
---
|
||||
|
||||
Guides lead a user through a specific task they want to accomplish, often with a sequence of steps.
|
||||
Writing a good guide requires thinking about what your users are trying to do.
|
||||
|
||||
## Further reading
|
||||
|
||||
- Read [about how-to guides](https://diataxis.fr/how-to-guides/) in the Diátaxis framework
|
36
src/content/docs/index.mdx
Normal file
36
src/content/docs/index.mdx
Normal file
@ -0,0 +1,36 @@
|
||||
---
|
||||
title: Welcome to Starlight
|
||||
description: Get started building your docs site with Starlight.
|
||||
template: splash
|
||||
hero:
|
||||
tagline: Congrats on setting up a new Starlight project!
|
||||
image:
|
||||
file: ../../assets/houston.webp
|
||||
actions:
|
||||
- text: Example Guide
|
||||
link: /guides/example/
|
||||
icon: right-arrow
|
||||
variant: primary
|
||||
- text: Read the Starlight docs
|
||||
link: https://starlight.astro.build
|
||||
icon: external
|
||||
---
|
||||
|
||||
import { Card, CardGrid } from '@astrojs/starlight/components';
|
||||
|
||||
## Next steps
|
||||
|
||||
<CardGrid stagger>
|
||||
<Card title="Update content" icon="pencil">
|
||||
Edit `src/content/docs/index.mdx` to see this page change.
|
||||
</Card>
|
||||
<Card title="Add new content" icon="add-document">
|
||||
Add Markdown or MDX files to `src/content/docs` to create new pages.
|
||||
</Card>
|
||||
<Card title="Configure your site" icon="setting">
|
||||
Edit your `sidebar` and other config in `astro.config.mjs`.
|
||||
</Card>
|
||||
<Card title="Read the docs" icon="open-book">
|
||||
Learn more in [the Starlight Docs](https://starlight.astro.build/).
|
||||
</Card>
|
||||
</CardGrid>
|
11
src/content/docs/reference/example.md
Normal file
11
src/content/docs/reference/example.md
Normal file
@ -0,0 +1,11 @@
|
||||
---
|
||||
title: Example Reference
|
||||
description: A reference page in my new Starlight docs site.
|
||||
---
|
||||
|
||||
Reference pages are ideal for outlining how things work in terse and clear terms.
|
||||
Less concerned with telling a story or addressing a specific use case, they should give a comprehensive outline of what your documenting.
|
||||
|
||||
## Further reading
|
||||
|
||||
- Read [about reference](https://diataxis.fr/reference/) in the Diátaxis framework
|
@ -1,30 +0,0 @@
|
||||
/**
|
||||
* Any CSS included here will be global. The classic template
|
||||
* bundles Infima by default. Infima is a CSS framework designed to
|
||||
* work well for content-centric websites.
|
||||
*/
|
||||
|
||||
/* You can override the default Infima variables here. */
|
||||
:root {
|
||||
--ifm-color-primary: #189ad6;
|
||||
--ifm-color-primary-dark: #1275a3;
|
||||
--ifm-color-primary-darker: #0c506f;
|
||||
--ifm-color-primary-darkest: #0c192e;
|
||||
--ifm-color-primary-light: #1cb5fc;
|
||||
--ifm-color-primary-lighter: #1ca8ff;
|
||||
--ifm-color-primary-lightest: #1c98ff;
|
||||
--ifm-code-font-size: 95%;
|
||||
--docusaurus-highlighted-code-line-bg: rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
|
||||
/* For readability concerns, you should choose a lighter palette in dark mode. */
|
||||
[data-theme='dark'] {
|
||||
--ifm-color-primary: #189ad6;
|
||||
--ifm-color-primary-dark: #1275a3;
|
||||
--ifm-color-primary-darker: #0c506f;
|
||||
--ifm-color-primary-darkest: #0c192e;
|
||||
--ifm-color-primary-light: #1cb5fc;
|
||||
--ifm-color-primary-lighter: #1ca8ff;
|
||||
--ifm-color-primary-lightest: #1c98ff;
|
||||
--docusaurus-highlighted-code-line-bg: rgba(0, 0, 0, 0.3);
|
||||
}
|
2
src/env.d.ts
vendored
Normal file
2
src/env.d.ts
vendored
Normal file
@ -0,0 +1,2 @@
|
||||
/// <reference path="../.astro/types.d.ts" />
|
||||
/// <reference types="astro/client" />
|
@ -1,44 +0,0 @@
|
||||
import React from "react";
|
||||
import clsx from "clsx";
|
||||
import useDocusaurusContext from "@docusaurus/useDocusaurusContext";
|
||||
import Layout from "@theme/Layout";
|
||||
|
||||
import styles from "./index.module.css";
|
||||
import Link from "@docusaurus/Link";
|
||||
import Head from "@docusaurus/Head";
|
||||
|
||||
function HomepageHeader() {
|
||||
const { siteConfig } = useDocusaurusContext();
|
||||
return (
|
||||
<header className={clsx("hero hero--primary", styles.heroBanner)}>
|
||||
<div className="container">
|
||||
<h1 className="hero__title">{siteConfig.title}</h1>
|
||||
<p className="hero__subtitle">{siteConfig.tagline}</p>
|
||||
<div className={styles.buttons}>
|
||||
<Link className="button button--secondary button--lg" to="/java">
|
||||
<i class="fa-brands fa-java"></i> Java
|
||||
</Link>
|
||||
<Link className="button button--secondary button--lg" to="/robot">
|
||||
<i class="fa-solid fa-robot"></i> Robot
|
||||
</Link>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
);
|
||||
}
|
||||
|
||||
export default function Home() {
|
||||
const { siteConfig } = useDocusaurusContext();
|
||||
return (
|
||||
<Layout title={`${siteConfig.title}`} description="Documentation PLS 5618">
|
||||
<Head>
|
||||
<script
|
||||
src="https://kit.fontawesome.com/9e215b042a.js"
|
||||
crossorigin="anonymous"
|
||||
></script>
|
||||
</Head>
|
||||
<HomepageHeader />
|
||||
<main></main>
|
||||
</Layout>
|
||||
);
|
||||
}
|
@ -1,24 +0,0 @@
|
||||
/**
|
||||
* CSS files with the .module.css suffix will be treated as CSS modules
|
||||
* and scoped locally.
|
||||
*/
|
||||
|
||||
.heroBanner {
|
||||
padding: 4rem 0;
|
||||
text-align: center;
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
@media screen and (max-width: 996px) {
|
||||
.heroBanner {
|
||||
padding: 2rem;
|
||||
}
|
||||
}
|
||||
|
||||
.buttons {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
gap: 1rem;
|
||||
}
|
Binary file not shown.
Before Width: | Height: | Size: 158 KiB |
Binary file not shown.
Before Width: | Height: | Size: 29 KiB |
Binary file not shown.
Before Width: | Height: | Size: 38 KiB |
3
tsconfig.json
Normal file
3
tsconfig.json
Normal file
@ -0,0 +1,3 @@
|
||||
{
|
||||
"extends": "astro/tsconfigs/strict"
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user