我使用 Go 制作了一个简单的网络应用程序。有一个goroutine当用户访问 URL 时执行的,比方说/inspection/start/。goroutine当用户访问 URL 时如何停止/inspection/stop/?
我听说过,channel但我不确定在我的情况下该怎么做。
这是代码:
func inspection_form_handler(w http.ResponseWriter, r *http.Request) {
if r.FormValue("save") != "" {
airport_id := getCurrentAirportId(r)
r.ParseForm()
if airport_id != nil {
if r.FormValue("action") == "add"{
go read_serial_port()
}
// redirect back to the list
http.Redirect(w, r, "/airport#inspect", http.StatusSeeOther)
}
}
}
常规功能
func read_serial_port(){
c := &serial.Config{Name:"/dev/ttyACM0", Baud:9600}
s, err := serial.OpenPort(c)
if err != nil {
log.Fatal(err)
}
filename:= randSeq(10)+".txt"
file, _ := os.Create("output/"+filename)
defer file.Close();
for{
buf := make([]byte, 128)
n, err := s.Read(buf)
if err != nil {
log.Fatal(err)
}
log.Printf("%s", string(buf[:n]))
fmt.Fprintf(file, string(buf[:n]))
time.Sleep(100 * time.Millisecond)
}
}
犯罪嫌疑人X
相关分类