Skip to content

Commit 8c4339e

Browse files
committed
feat(gas-sensor): add LEDs
1 parent ddfa867 commit 8c4339e

File tree

2 files changed

+58
-3
lines changed

2 files changed

+58
-3
lines changed

src/gas-sensor-element.stories.ts

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,17 @@ import './gas-sensor-element';
44
export default {
55
title: 'Gas Sensor',
66
component: 'wokwi-gas-sensor',
7+
argTypes: {
8+
ledPower: { control: { type: 'boolean' } },
9+
ledD0: { control: { type: 'boolean' } },
10+
},
11+
args: {
12+
ledPower: true,
13+
ledD0: false,
14+
},
715
};
816

9-
const Template = () => html`<wokwi-gas-sensor></wokwi-gas-sensor>`;
17+
const Template = ({ ledPower, ledD0 }) =>
18+
html` <wokwi-gas-sensor .ledPower=${ledPower} .ledD0=${ledD0}></wokwi-gas-sensor>`;
1019

1120
export const Default = Template.bind({});

src/gas-sensor-element.ts

Lines changed: 48 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,13 @@
1-
import { html, LitElement } from 'lit';
2-
import { customElement } from 'lit/decorators.js';
1+
import { html, LitElement, svg } from 'lit';
2+
import { customElement, property } from 'lit/decorators.js';
33
import { ElementPin } from '.';
44
import { GND, VCC } from './pin';
55

66
@customElement('wokwi-gas-sensor')
77
export class GasSensorElement extends LitElement {
8+
@property() ledPower = false;
9+
@property() ledD0 = false;
10+
811
readonly pinInfo: ElementPin[] = [
912
{ name: 'AOUT', y: 16.5, x: 137, number: 1, signals: [] },
1013
{ name: 'DOUT', y: 26.4, x: 137, number: 2, signals: [] },
@@ -13,6 +16,7 @@ export class GasSensorElement extends LitElement {
1316
];
1417

1518
render() {
19+
const { ledPower, ledD0 } = this;
1620
return html`
1721
<svg
1822
width="36.232mm"
@@ -63,6 +67,48 @@ export class GasSensorElement extends LitElement {
6367
<tspan x="94.656" y="35.911">GND</tspan>
6468
<tspan x="94.656" y="45.696">VCC</tspan>
6569
</text>
70+
71+
<!-- LEDs -->
72+
73+
<rect
74+
style="opacity:1;fill:#999999;stroke-width:1.5747;paint-order:stroke markers fill"
75+
id="rect17"
76+
width="8.5262499"
77+
height="3.8281121"
78+
x="81.321793"
79+
y="5.8179226"
80+
/>
81+
<rect
82+
style="opacity:1;fill:#e6e6e6;stroke-width:2.05589;paint-order:stroke markers fill"
83+
id="rect18"
84+
width="4.8444595"
85+
height="3.8281121"
86+
x="83.162689"
87+
y="5.8179226"
88+
/>
89+
${ledPower &&
90+
svg`<circle cx="85.5" cy="8" r="1.8" fill="#03f704" filter="url(#ledFilter)" />`}
91+
<rect
92+
style="fill:#999999;stroke-width:1.5747;paint-order:stroke markers fill"
93+
id="rect17-9"
94+
width="8.5262499"
95+
height="3.8281121"
96+
x="81.018036"
97+
y="48.700188"
98+
/>
99+
<rect
100+
style="fill:#e6e6e6;stroke-width:2.05589;paint-order:stroke markers fill"
101+
id="rect18-0"
102+
width="4.8444595"
103+
height="3.8281121"
104+
x="82.858932"
105+
y="48.700188"
106+
/>
107+
${ledD0 && svg`<circle cx="85" cy="50" r="1.8" fill="#03f704" filter="url(#ledFilter)" />`}
108+
<text fill="#ffffff" font-family="sans-serif" font-size="3px">
109+
<tspan x="80.213432" y="4.7265162">PWR LED</tspan>
110+
<tspan x="80.463821" y="55.852409">D0 LED</tspan>
111+
</text>
66112
</svg>
67113
`;
68114
}

0 commit comments

Comments
 (0)