# {py:mod}`haniwers.v1.daq.model`

```{py:module} haniwers.v1.daq.model
```

```{autodoc2-docstring} haniwers.v1.daq.model
:allowtitles:
```

## Module Contents

### Classes

````{list-table}
:class: autosummary longtable
:align: left

* - {py:obj}`RawEvent <haniwers.v1.daq.model.RawEvent>`
  - ```{autodoc2-docstring} haniwers.v1.daq.model.RawEvent
    :summary:
    ```
* - {py:obj}`MockEvent <haniwers.v1.daq.model.MockEvent>`
  - ```{autodoc2-docstring} haniwers.v1.daq.model.MockEvent
    :summary:
    ```
* - {py:obj}`HitEvent <haniwers.v1.daq.model.HitEvent>`
  -
* - {py:obj}`AdcEvent <haniwers.v1.daq.model.AdcEvent>`
  -
* - {py:obj}`SlowEvent <haniwers.v1.daq.model.SlowEvent>`
  -
* - {py:obj}`GnssEvent <haniwers.v1.daq.model.GnssEvent>`
  -
* - {py:obj}`ProcessedEvent <haniwers.v1.daq.model.ProcessedEvent>`
  - ```{autodoc2-docstring} haniwers.v1.daq.model.ProcessedEvent
    :summary:
    ```
````

### API

`````{py:class} RawEvent
:canonical: haniwers.v1.daq.model.RawEvent

```{autodoc2-docstring} haniwers.v1.daq.model.RawEvent
```

````{py:attribute} time
:canonical: haniwers.v1.daq.model.RawEvent.time
:type: pendulum.DateTime
:value: >
   None

```{autodoc2-docstring} haniwers.v1.daq.model.RawEvent.time
```

````

````{py:attribute} top
:canonical: haniwers.v1.daq.model.RawEvent.top
:type: int
:value: >
   None

```{autodoc2-docstring} haniwers.v1.daq.model.RawEvent.top
```

````

````{py:attribute} mid
:canonical: haniwers.v1.daq.model.RawEvent.mid
:type: int
:value: >
   None

```{autodoc2-docstring} haniwers.v1.daq.model.RawEvent.mid
```

````

````{py:attribute} btm
:canonical: haniwers.v1.daq.model.RawEvent.btm
:type: int
:value: >
   None

```{autodoc2-docstring} haniwers.v1.daq.model.RawEvent.btm
```

````

````{py:attribute} adc
:canonical: haniwers.v1.daq.model.RawEvent.adc
:type: int
:value: >
   None

```{autodoc2-docstring} haniwers.v1.daq.model.RawEvent.adc
```

````

````{py:attribute} tmp
:canonical: haniwers.v1.daq.model.RawEvent.tmp
:type: float
:value: >
   None

```{autodoc2-docstring} haniwers.v1.daq.model.RawEvent.tmp
```

````

````{py:attribute} atm
:canonical: haniwers.v1.daq.model.RawEvent.atm
:type: float
:value: >
   None

```{autodoc2-docstring} haniwers.v1.daq.model.RawEvent.atm
```

````

````{py:attribute} hmd
:canonical: haniwers.v1.daq.model.RawEvent.hmd
:type: float
:value: >
   None

```{autodoc2-docstring} haniwers.v1.daq.model.RawEvent.hmd
```

````

````{py:method} _format_fields() -> list[str]
:canonical: haniwers.v1.daq.model.RawEvent._format_fields

```{autodoc2-docstring} haniwers.v1.daq.model.RawEvent._format_fields
```

````

````{py:method} to_serial() -> str
:canonical: haniwers.v1.daq.model.RawEvent.to_serial

```{autodoc2-docstring} haniwers.v1.daq.model.RawEvent.to_serial
```

````

````{py:method} to_list() -> list[str]
:canonical: haniwers.v1.daq.model.RawEvent.to_list

```{autodoc2-docstring} haniwers.v1.daq.model.RawEvent.to_list
```

````

````{py:method} _from_values(time: pendulum.DateTime, values: list[str]) -> haniwers.v1.daq.model.RawEvent
:canonical: haniwers.v1.daq.model.RawEvent._from_values
:classmethod:

```{autodoc2-docstring} haniwers.v1.daq.model.RawEvent._from_values
```

````

````{py:method} from_serial(line: str, time: pendulum.DateTime) -> RawEvent | None
:canonical: haniwers.v1.daq.model.RawEvent.from_serial
:classmethod:

```{autodoc2-docstring} haniwers.v1.daq.model.RawEvent.from_serial
```

````

````{py:method} from_list(values: list[str]) -> haniwers.v1.daq.model.RawEvent
:canonical: haniwers.v1.daq.model.RawEvent.from_list
:classmethod:

```{autodoc2-docstring} haniwers.v1.daq.model.RawEvent.from_list
```

````

````{py:method} header() -> list[str]
:canonical: haniwers.v1.daq.model.RawEvent.header
:classmethod:

```{autodoc2-docstring} haniwers.v1.daq.model.RawEvent.header
```

````

`````

`````{py:class} MockEvent(/, **data: typing.Any)
:canonical: haniwers.v1.daq.model.MockEvent

Bases: {py:obj}`pydantic.BaseModel`

```{autodoc2-docstring} haniwers.v1.daq.model.MockEvent
```

```{rubric} Initialization
```

```{autodoc2-docstring} haniwers.v1.daq.model.MockEvent.__init__
```

````{py:attribute} raw
:canonical: haniwers.v1.daq.model.MockEvent.raw
:type: haniwers.v1.daq.model.RawEvent
:value: >
   None

```{autodoc2-docstring} haniwers.v1.daq.model.MockEvent.raw
```

````

````{py:attribute} deltaT
:canonical: haniwers.v1.daq.model.MockEvent.deltaT
:type: float
:value: >
   1.0

```{autodoc2-docstring} haniwers.v1.daq.model.MockEvent.deltaT
```

````

````{py:attribute} jitter
:canonical: haniwers.v1.daq.model.MockEvent.jitter
:type: float
:value: >
   0.0

```{autodoc2-docstring} haniwers.v1.daq.model.MockEvent.jitter
```

````

````{py:attribute} speed
:canonical: haniwers.v1.daq.model.MockEvent.speed
:type: float
:value: >
   1.0

```{autodoc2-docstring} haniwers.v1.daq.model.MockEvent.speed
```

````

````{py:attribute} model_config
:canonical: haniwers.v1.daq.model.MockEvent.model_config
:value: >
   None

```{autodoc2-docstring} haniwers.v1.daq.model.MockEvent.model_config
```

````

````{py:method} to_serial() -> str
:canonical: haniwers.v1.daq.model.MockEvent.to_serial

```{autodoc2-docstring} haniwers.v1.daq.model.MockEvent.to_serial
```

````

````{py:method} _from_values(time: pendulum.DateTime, values: list[str], *, deltaT: float, jitter: float, speed: float) -> haniwers.v1.daq.model.MockEvent
:canonical: haniwers.v1.daq.model.MockEvent._from_values
:classmethod:

```{autodoc2-docstring} haniwers.v1.daq.model.MockEvent._from_values
```

````

````{py:method} from_list(values: list[str], *, deltaT: float, jitter: float, speed: float)
:canonical: haniwers.v1.daq.model.MockEvent.from_list
:classmethod:

```{autodoc2-docstring} haniwers.v1.daq.model.MockEvent.from_list
```

````

`````

`````{py:class} HitEvent(/, **data: typing.Any)
:canonical: haniwers.v1.daq.model.HitEvent

Bases: {py:obj}`pydantic.BaseModel`

````{py:attribute} top
:canonical: haniwers.v1.daq.model.HitEvent.top
:type: bool
:value: >
   None

```{autodoc2-docstring} haniwers.v1.daq.model.HitEvent.top
```

````

````{py:attribute} mid
:canonical: haniwers.v1.daq.model.HitEvent.mid
:type: bool
:value: >
   None

```{autodoc2-docstring} haniwers.v1.daq.model.HitEvent.mid
```

````

````{py:attribute} btm
:canonical: haniwers.v1.daq.model.HitEvent.btm
:type: bool
:value: >
   None

```{autodoc2-docstring} haniwers.v1.daq.model.HitEvent.btm
```

````

````{py:attribute} hit_type
:canonical: haniwers.v1.daq.model.HitEvent.hit_type
:type: int
:value: >
   'Field(...)'

```{autodoc2-docstring} haniwers.v1.daq.model.HitEvent.hit_type
```

````

````{py:method} from_raw_event(raw: haniwers.v1.daq.model.RawEvent, threshold: dict[str, int]) -> haniwers.v1.daq.model.HitEvent
:canonical: haniwers.v1.daq.model.HitEvent.from_raw_event
:classmethod:

```{autodoc2-docstring} haniwers.v1.daq.model.HitEvent.from_raw_event
```

````

`````

`````{py:class} AdcEvent(/, **data: typing.Any)
:canonical: haniwers.v1.daq.model.AdcEvent

Bases: {py:obj}`pydantic.BaseModel`

````{py:attribute} top
:canonical: haniwers.v1.daq.model.AdcEvent.top
:type: int
:value: >
   None

```{autodoc2-docstring} haniwers.v1.daq.model.AdcEvent.top
```

````

````{py:attribute} mid
:canonical: haniwers.v1.daq.model.AdcEvent.mid
:type: int
:value: >
   None

```{autodoc2-docstring} haniwers.v1.daq.model.AdcEvent.mid
```

````

````{py:attribute} btm
:canonical: haniwers.v1.daq.model.AdcEvent.btm
:type: int
:value: >
   None

```{autodoc2-docstring} haniwers.v1.daq.model.AdcEvent.btm
```

````

````{py:method} from_raw_event(raw: haniwers.v1.daq.model.RawEvent, threshold: dict[str, int]) -> haniwers.v1.daq.model.AdcEvent
:canonical: haniwers.v1.daq.model.AdcEvent.from_raw_event
:classmethod:

```{autodoc2-docstring} haniwers.v1.daq.model.AdcEvent.from_raw_event
```

````

`````

`````{py:class} SlowEvent(/, **data: typing.Any)
:canonical: haniwers.v1.daq.model.SlowEvent

Bases: {py:obj}`pydantic.BaseModel`

````{py:attribute} tmp
:canonical: haniwers.v1.daq.model.SlowEvent.tmp
:type: float
:value: >
   None

```{autodoc2-docstring} haniwers.v1.daq.model.SlowEvent.tmp
```

````

````{py:attribute} atm
:canonical: haniwers.v1.daq.model.SlowEvent.atm
:type: float
:value: >
   None

```{autodoc2-docstring} haniwers.v1.daq.model.SlowEvent.atm
```

````

````{py:attribute} hmd
:canonical: haniwers.v1.daq.model.SlowEvent.hmd
:type: float
:value: >
   None

```{autodoc2-docstring} haniwers.v1.daq.model.SlowEvent.hmd
```

````

````{py:method} from_raw_event(raw: haniwers.v1.daq.model.RawEvent) -> haniwers.v1.daq.model.SlowEvent
:canonical: haniwers.v1.daq.model.SlowEvent.from_raw_event
:classmethod:

```{autodoc2-docstring} haniwers.v1.daq.model.SlowEvent.from_raw_event
```

````

`````

`````{py:class} GnssEvent(/, **data: typing.Any)
:canonical: haniwers.v1.daq.model.GnssEvent

Bases: {py:obj}`pydantic.BaseModel`

````{py:attribute} latitude
:canonical: haniwers.v1.daq.model.GnssEvent.latitude
:type: float
:value: >
   None

```{autodoc2-docstring} haniwers.v1.daq.model.GnssEvent.latitude
```

````

````{py:attribute} longitute
:canonical: haniwers.v1.daq.model.GnssEvent.longitute
:type: float
:value: >
   None

```{autodoc2-docstring} haniwers.v1.daq.model.GnssEvent.longitute
```

````

````{py:attribute} altitude
:canonical: haniwers.v1.daq.model.GnssEvent.altitude
:type: float | None
:value: >
   None

```{autodoc2-docstring} haniwers.v1.daq.model.GnssEvent.altitude
```

````

````{py:attribute} timestamp
:canonical: haniwers.v1.daq.model.GnssEvent.timestamp
:type: datetime.datetime | None
:value: >
   None

```{autodoc2-docstring} haniwers.v1.daq.model.GnssEvent.timestamp
```

````

````{py:method} from_raw_event(raw: haniwers.v1.daq.model.RawEvent) -> haniwers.v1.daq.model.GnssEvent
:canonical: haniwers.v1.daq.model.GnssEvent.from_raw_event
:classmethod:

```{autodoc2-docstring} haniwers.v1.daq.model.GnssEvent.from_raw_event
```

````

`````

`````{py:class} ProcessedEvent(/, **data: typing.Any)
:canonical: haniwers.v1.daq.model.ProcessedEvent

Bases: {py:obj}`pydantic.BaseModel`

```{autodoc2-docstring} haniwers.v1.daq.model.ProcessedEvent
```

```{rubric} Initialization
```

```{autodoc2-docstring} haniwers.v1.daq.model.ProcessedEvent.__init__
```

````{py:attribute} time
:canonical: haniwers.v1.daq.model.ProcessedEvent.time
:type: pendulum.DateTime
:value: >
   None

```{autodoc2-docstring} haniwers.v1.daq.model.ProcessedEvent.time
```

````

````{py:attribute} top_hit
:canonical: haniwers.v1.daq.model.ProcessedEvent.top_hit
:type: bool
:value: >
   None

```{autodoc2-docstring} haniwers.v1.daq.model.ProcessedEvent.top_hit
```

````

````{py:attribute} mid_hit
:canonical: haniwers.v1.daq.model.ProcessedEvent.mid_hit
:type: bool
:value: >
   None

```{autodoc2-docstring} haniwers.v1.daq.model.ProcessedEvent.mid_hit
```

````

````{py:attribute} btm_hit
:canonical: haniwers.v1.daq.model.ProcessedEvent.btm_hit
:type: bool
:value: >
   None

```{autodoc2-docstring} haniwers.v1.daq.model.ProcessedEvent.btm_hit
```

````

````{py:attribute} hit_type
:canonical: haniwers.v1.daq.model.ProcessedEvent.hit_type
:type: int
:value: >
   'Field(...)'

```{autodoc2-docstring} haniwers.v1.daq.model.ProcessedEvent.hit_type
```

````

````{py:attribute} adc
:canonical: haniwers.v1.daq.model.ProcessedEvent.adc
:type: int
:value: >
   None

```{autodoc2-docstring} haniwers.v1.daq.model.ProcessedEvent.adc
```

````

````{py:attribute} tmp
:canonical: haniwers.v1.daq.model.ProcessedEvent.tmp
:type: float
:value: >
   None

```{autodoc2-docstring} haniwers.v1.daq.model.ProcessedEvent.tmp
```

````

````{py:attribute} atm
:canonical: haniwers.v1.daq.model.ProcessedEvent.atm
:type: float
:value: >
   None

```{autodoc2-docstring} haniwers.v1.daq.model.ProcessedEvent.atm
```

````

````{py:attribute} hmd
:canonical: haniwers.v1.daq.model.ProcessedEvent.hmd
:type: float
:value: >
   None

```{autodoc2-docstring} haniwers.v1.daq.model.ProcessedEvent.hmd
```

````

````{py:attribute} raw
:canonical: haniwers.v1.daq.model.ProcessedEvent.raw
:type: haniwers.v1.daq.model.RawEvent | None
:value: >
   None

```{autodoc2-docstring} haniwers.v1.daq.model.ProcessedEvent.raw
```

````

````{py:attribute} model_config
:canonical: haniwers.v1.daq.model.ProcessedEvent.model_config
:value: >
   None

```{autodoc2-docstring} haniwers.v1.daq.model.ProcessedEvent.model_config
```

````

````{py:method} to_list() -> list[str]
:canonical: haniwers.v1.daq.model.ProcessedEvent.to_list

```{autodoc2-docstring} haniwers.v1.daq.model.ProcessedEvent.to_list
```

````

````{py:method} from_list(values: list[str]) -> haniwers.v1.daq.model.ProcessedEvent
:canonical: haniwers.v1.daq.model.ProcessedEvent.from_list
:classmethod:

```{autodoc2-docstring} haniwers.v1.daq.model.ProcessedEvent.from_list
```

````

````{py:method} header() -> list[str]
:canonical: haniwers.v1.daq.model.ProcessedEvent.header
:classmethod:

```{autodoc2-docstring} haniwers.v1.daq.model.ProcessedEvent.header
```

````

````{py:method} from_raw_event(raw: haniwers.v1.daq.model.RawEvent, threshold: dict[str, int]) -> haniwers.v1.daq.model.ProcessedEvent
:canonical: haniwers.v1.daq.model.ProcessedEvent.from_raw_event
:classmethod:

```{autodoc2-docstring} haniwers.v1.daq.model.ProcessedEvent.from_raw_event
```

````

`````
