syntax = "proto2"; import "lib/common.proto"; message HardwareFluxSourceProto { optional int32 drive = 1 [default = 0, (help) = "which drive to read from"]; optional double revolutions = 2 [default = 1.2, (help) = "number of revolutions to read"]; optional bool sync_with_index = 3 [default = false, (help) = "start reading at index mark"]; optional IndexMode index_mode = 4 [default = INDEXMODE_DRIVE, (help) = "index pulse source"]; optional int32 hard_sector_count = 5 [default = 0, (help) = "number of hard sectors on disk"]; optional bool high_density = 6 [default = true, (help) = "set if this is a high density disk"]; } message TestPatternFluxSourceProto { optional double interval_us = 1 [default = 4.0, (help) = "interval between pulses"]; optional double sequence_length_us = 2 [default = 200.0, (help) = "length of test sequence"]; } message EraseFluxSourceProto {} message KryofluxFluxSourceProto { optional string directory = 1 [(help) = "path to Kryoflux stream directory"]; } message ScpFluxSourceProto { optional string filename = 1 [default = "flux.scp", (help) = ".scp file to read flux from"]; } message CwfFluxSourceProto { optional string filename = 1 [default = "flux.xwf", (help) = ".cwf file to read flux from"]; } message FluxSourceProto { oneof source { string fluxfile = 1 [default = "name of source flux file"]; HardwareFluxSourceProto drive = 2; TestPatternFluxSourceProto test_pattern = 3; EraseFluxSourceProto erase = 4; KryofluxFluxSourceProto kryoflux = 5; ScpFluxSourceProto scp = 6; CwfFluxSourceProto cwf = 7; } }