Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
jobily
Iot
提交
f9d9682b
I
Iot
项目概览
jobily
/
Iot
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
I
Iot
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
f9d9682b
编写于
12月 05, 2018
作者:
A
Andrew Phelps
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
address feedback to change sample to pwm-pin-output
上级
263072f3
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
54 addition
and
3 deletion
+54
-3
tools/DevicesApiTester/Commands/Pwm/PwmCommand.cs
tools/DevicesApiTester/Commands/Pwm/PwmCommand.cs
+13
-3
tools/DevicesApiTester/Commands/Pwm/PwmPinOutput.cs
tools/DevicesApiTester/Commands/Pwm/PwmPinOutput.cs
+41
-0
未找到文件。
tools/DevicesApiTester/Commands/Pwm/PwmCommand.cs
浏览文件 @
f9d9682b
...
...
@@ -13,13 +13,23 @@ namespace DeviceApiTester.Commands.Pwm
[
Option
(
'd'
,
"driver"
,
HelpText
=
"The PwmDriver to use: { Windows | Unix }"
,
Required
=
false
,
Default
=
PwmDriverType
.
Windows
)]
public
PwmDriverType
Driver
{
get
;
set
;
}
[
Option
(
"pwm-chip"
,
HelpText
=
"The PWM chip (controller) to use"
,
Required
=
false
,
Default
=
0
)]
public
int
PwmChip
{
get
;
set
;
}
[
Option
(
"pwm-channel"
,
HelpText
=
"The PWM channel (pin) to use"
,
Required
=
false
,
Default
=
0
)]
public
int
PwmChannel
{
get
;
set
;
}
[
Option
(
'c'
,
"dutycycle"
,
HelpText
=
"The duty cycle for PWM output from 1-100"
,
Required
=
false
,
Default
=
50
)]
public
int
DutyCycle
{
get
;
set
;
}
[
Option
(
'f'
,
"frequency"
,
HelpText
=
"The frequency in hertz"
,
Required
=
false
,
Default
=
400.0
)]
public
double
Frequency
{
get
;
set
;
}
protected
PwmController
CreatePwmController
()
{
PwmDriver
pwmDriver
=
DriverFactory
.
CreateFromEnum
<
PwmDriver
,
PwmDriverType
>(
this
.
Driver
);
return
pwmDriver
!=
null
?
new
PwmController
(
pwmDriver
)
:
new
PwmController
(
pwmDriver
);
return
new
PwmController
(
pwmDriver
);
}
}
}
\ No newline at end of file
tools/DevicesApiTester/Commands/Pwm/
DimLed
.cs
→
tools/DevicesApiTester/Commands/Pwm/
PwmPinOutput
.cs
浏览文件 @
f9d9682b
...
...
@@ -10,8 +10,8 @@ using DeviceApiTester.Infrastructure;
namespace
DeviceApiTester.Commands.Pwm
{
[
Verb
(
"pwm-
dim-led"
,
HelpText
=
"Dims an LED connected to a specified PWM pin for 3
seconds"
)]
public
class
DimLed
:
PwmCommand
,
ICommandVerbAsync
[
Verb
(
"pwm-
pin-output"
,
HelpText
=
"Starts PWM output on the given chip/channel for desired amount of
seconds"
)]
public
class
PwmPinOutput
:
PwmCommand
,
ICommandVerbAsync
{
/// <summary>Executes the command asynchronously.</summary>
/// <returns>The command's exit code.</returns>
...
...
@@ -22,32 +22,20 @@ namespace DeviceApiTester.Commands.Pwm
/// </remarks>
public
async
Task
<
int
>
ExecuteAsync
()
{
Console
.
WriteLine
(
$"LedPin=
{
LedPin
}
, DutyCycle=
{
DutyCycle
}
, Frequency=
{
Frequency
}
, Driver=
{
Driver
}
"
);
using
(
var
pwm
=
CreatePwmController
())
{
int
pwmChip
=
0
;
int
pwmChannel
=
LedPin
;
double
pwmFreq
=
(
double
)
Frequency
;
Console
.
WriteLine
(
"Opening the pin {0}, chip {1}, at duty cycle {2} and frequency {3}"
,
LedPin
,
pwmChip
,
DutyCycle
,
pwmFreq
);
Console
.
WriteLine
(
"Enabling PWM output with chip {0} / channel {1}, {2}% duty cycle @ {3}hz for {4} seconds "
,
PwmChip
,
PwmChip
,
DutyCycle
,
Frequency
,
Seconds
);
pwm
.
OpenChannel
(
pwmChip
,
p
wmChannel
);
pwm
.
StartWriting
(
pwmChip
,
pwmChannel
,
pwmFreq
,
DutyCycle
);
await
Task
.
Delay
(
3
000
);
pwm
.
StopWriting
(
pwmChip
,
p
wmChannel
);
pwm
.
OpenChannel
(
PwmChip
,
P
wmChannel
);
pwm
.
StartWriting
(
PwmChip
,
PwmChannel
,
Frequency
,
DutyCycle
);
await
Task
.
Delay
(
Seconds
*
1
000
);
pwm
.
StopWriting
(
PwmChip
,
P
wmChannel
);
}
return
0
;
}
[
Option
(
'l'
,
"led-pin"
,
HelpText
=
"The PWM pin which the LED is connected to, numbered based on the --scheme argument"
,
Required
=
true
)]
public
int
LedPin
{
get
;
set
;
}
[
Option
(
'c'
,
"dutycycle"
,
HelpText
=
"The duty cycle for PWM output from 1-100"
,
Required
=
false
,
Default
=
50
)]
public
int
DutyCycle
{
get
;
set
;
}
[
Option
(
'f'
,
"frequency"
,
HelpText
=
"The frequency in herz"
,
Required
=
false
,
Default
=
400
)]
public
int
Frequency
{
get
;
set
;
}
[
Option
(
's'
,
"seconds"
,
HelpText
=
"The number of seconds to output the PWM signal"
,
Required
=
false
,
Default
=
3
)]
public
int
Seconds
{
get
;
set
;
}
}
}
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录